about summary refs log tree commit homepage
path: root/lib/rainbows/thread_pool.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rainbows/thread_pool.rb')
-rw-r--r--lib/rainbows/thread_pool.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/rainbows/thread_pool.rb b/lib/rainbows/thread_pool.rb
index 280ba40..7934dc8 100644
--- a/lib/rainbows/thread_pool.rb
+++ b/lib/rainbows/thread_pool.rb
@@ -28,16 +28,15 @@ module Rainbows
     def worker_loop(worker)
       init_worker_process(worker)
       pool = (1..worker_connections).map { new_worker_thread }
-      m = 0
 
-      while G.alive && master_pid == Process.ppid
+      while G.alive
+        # if any worker dies, something is serious wrong, bail
         pool.each do |thr|
-          worker.tmp.chmod(m = 0 == m ? 1 : 0)
-          # if any worker dies, something is serious wrong, bail
-          thr.join(1) and break
+          G.tick
+          thr.join(1) and G.quit!
         end
       end
-      join_threads(pool, worker)
+      join_threads(pool)
     end
 
     def new_worker_thread