[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]