ruby-changes:24335
From: nobu <ko1@a...>
Date: Sat, 14 Jul 2012 16:17:13 +0900 (JST)
Subject: [ruby-changes:24335] nobu:r36385 (trunk): test/unit.rb: launch_worker to manage new worker
nobu 2012-07-14 16:16:29 +0900 (Sat, 14 Jul 2012) New Revision: 36385 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36385 Log: test/unit.rb: launch_worker to manage new worker * lib/test/unit.rb (Test::Unit::Runner#launch_worker): add new worker to working set. Modified files: trunk/ChangeLog trunk/lib/test/unit.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 36384) +++ ChangeLog (revision 36385) @@ -1,5 +1,8 @@ -Sat Jul 14 16:16:22 2012 Nobuyoshi Nakada <nobu@r...> +Sat Jul 14 16:16:27 2012 Nobuyoshi Nakada <nobu@r...> + * lib/test/unit.rb (Test::Unit::Runner#launch_worker): add new worker + to working set. + * lib/test/unit.rb (Test::Unit::Runner#launch_worker): extract. * lib/test/unit.rb (Test::Unit::Runner#start_watchdog): extract. Index: lib/test/unit.rb =================================================================== --- lib/test/unit.rb (revision 36384) +++ lib/test/unit.rb (revision 36385) @@ -462,6 +462,9 @@ after_worker_quit w after_worker_down w, *info if !info.empty? && !worker.quit_called end + @workers << worker + @ios << worker.io + @workers_hash[worker.io] = worker worker end @@ -498,15 +501,15 @@ shutting_down = false rep = [] # FIXME: more good naming + @workers = [] # Array of workers. + @workers_hash = {} # out-IO => worker + @ios = [] # Array of worker IOs begin - # Array of workers. - @workers = @options[:parallel].times.map {launch_worker} - # Thread: watchdog watchdog = start_watchdog - @workers_hash = Hash[@workers.map {|w| [w.io,w] }] # out-IO => worker - @ios = @workers.map{|w| w.io } # Array of worker IOs + @options[:parallel].times {launch_worker} + while _io = IO.select(@ios)[0] break unless _io.each do |io| break if @need_quit @@ -527,12 +530,8 @@ @workers_hash.delete worker.io @workers.delete worker @ios.delete worker.io - new_worker = launch_worker worker.quit - @workers << new_worker - @ios << new_worker.io - @workers_hash[new_worker.io] = new_worker - worker = new_worker + worker = launch_worker end worker.run(@tasks.shift, type) @test_count += 1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/