ruby-changes:24332
From: nobu <ko1@a...>
Date: Sat, 14 Jul 2012 16:16:56 +0900 (JST)
Subject: [ruby-changes:24332] nobu:r36383 (trunk): test/unit.rb: extract start_watchdog
nobu 2012-07-14 16:16:19 +0900 (Sat, 14 Jul 2012) New Revision: 36383 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36383 Log: test/unit.rb: extract start_watchdog * lib/test/unit.rb (Test::Unit::Runner#start_watchdog): extract. Modified files: trunk/ChangeLog trunk/lib/test/unit.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 36382) +++ ChangeLog (revision 36383) @@ -1,5 +1,7 @@ -Sat Jul 14 16:16:12 2012 Nobuyoshi Nakada <nobu@r...> +Sat Jul 14 16:16:17 2012 Nobuyoshi Nakada <nobu@r...> + * lib/test/unit.rb (Test::Unit::Runner#start_watchdog): extract. + * lib/test/unit.rb (Test::Unit::Runner#_run_parallel): move initializations with nothing to release outside begin/ensure. Index: lib/test/unit.rb =================================================================== --- lib/test/unit.rb (revision 36382) +++ lib/test/unit.rb (revision 36383) @@ -452,6 +452,22 @@ @ios = @workers.map(&:io) end + def start_watchdog + Thread.new do + while stat = Process.wait2 + break if @interrupt # Break when interrupt + pid, stat = stat + w = (@workers + @dead_workers).find{|x| pid == x.pid } + next unless w + w = w.dup + if w.status != :quit && !w.quit_called? + # Worker down + w.died(nil, !stat.signaled? && stat.exitstatus) + end + end + end + end + def _run_parallel suites, type, result if @options[:parallel] < 1 warn "Error: parameter of -j option should be greater than 0." @@ -487,20 +503,7 @@ @workers = @options[:parallel].times.map(&launch_worker) # Thread: watchdog - watchdog = Thread.new do - while stat = Process.wait2 - break if @interrupt # Break when interrupt - pid, stat = stat - w = (@workers + @dead_workers).find{|x| pid == x.pid } - next unless w - w = w.dup - if w.status != :quit && !w.quit_called? - # Worker down - w.died(nil, !stat.signaled? && stat.exitstatus) - end - end - end - + 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 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/