ruby-changes:24333
From: nobu <ko1@a...>
Date: Sat, 14 Jul 2012 16:17:00 +0900 (JST)
Subject: [ruby-changes:24333] nobu:r36384 (trunk): test/unit.rb: extract launch_worker
nobu 2012-07-14 16:16:24 +0900 (Sat, 14 Jul 2012) New Revision: 36384 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36384 Log: test/unit.rb: extract launch_worker * lib/test/unit.rb (Test::Unit::Runner#launch_worker): extract. Modified files: trunk/ChangeLog trunk/lib/test/unit.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 36383) +++ ChangeLog (revision 36384) @@ -1,5 +1,7 @@ -Sat Jul 14 16:16:17 2012 Nobuyoshi Nakada <nobu@r...> +Sat Jul 14 16:16:22 2012 Nobuyoshi Nakada <nobu@r...> + * lib/test/unit.rb (Test::Unit::Runner#launch_worker): extract. + * lib/test/unit.rb (Test::Unit::Runner#start_watchdog): extract. * lib/test/unit.rb (Test::Unit::Runner#_run_parallel): move Index: lib/test/unit.rb =================================================================== --- lib/test/unit.rb (revision 36383) +++ lib/test/unit.rb (revision 36384) @@ -452,6 +452,19 @@ @ios = @workers.map(&:io) end + def launch_worker + begin + worker = Worker.launch(@options[:ruby],@args) + rescue => e + abort "ERROR: Failed to launch job process - #{e.class}: #{e.message}" + end + worker.hook(:dead) do |w,info| + after_worker_quit w + after_worker_down w, *info if !info.empty? && !worker.quit_called + end + worker + end + def start_watchdog Thread.new do while stat = Process.wait2 @@ -487,20 +500,7 @@ begin # Array of workers. - launch_worker = Proc.new { - begin - worker = Worker.launch(@options[:ruby],@args) - rescue => e - warn "ERROR: Failed to launch job process - #{e.class}: #{e.message}" - exit 1 - end - worker.hook(:dead) do |w,info| - after_worker_quit w - after_worker_down w, *info if !info.empty? && !worker.quit_called - end - worker - } - @workers = @options[:parallel].times.map(&launch_worker) + @workers = @options[:parallel].times.map {launch_worker} # Thread: watchdog watchdog = start_watchdog @@ -527,7 +527,7 @@ @workers_hash.delete worker.io @workers.delete worker @ios.delete worker.io - new_worker = launch_worker.call() + new_worker = launch_worker worker.quit @workers << new_worker @ios << new_worker.io -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/