about summary refs log tree commit homepage
path: root/lib/unicorn.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-04-24 01:21:31 -0700
committerEric Wong <normalperson@yhbt.net>2009-04-24 01:21:31 -0700
commite93f84e28f0da4ce7aa21d714f0504677f4bf6f6 (patch)
tree265bc52928adec0c9d5c69bc0afec5a8d91c5ab1 /lib/unicorn.rb
parenta60c5ddaf8082c5a59a68fb0b726a520c4e94e19 (diff)
downloadunicorn-e93f84e28f0da4ce7aa21d714f0504677f4bf6f6.tar.gz
As long as our speculative accept()s are succeeding, then avoid
checking for master process death and keep processing requests.
This allows us to save some syscalls under extremely heavy
traffic spikes.
Diffstat (limited to 'lib/unicorn.rb')
-rw-r--r--lib/unicorn.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/unicorn.rb b/lib/unicorn.rb
index c2ac09d..a049b5c 100644
--- a/lib/unicorn.rb
+++ b/lib/unicorn.rb
@@ -471,7 +471,7 @@ module Unicorn
       [:TERM, :INT].each { |sig| trap(sig) { exit(0) } } # instant shutdown
       @logger.info "worker=#{worker.nr} ready"
 
-      while alive && master_pid == Process.ppid
+      while alive
         if nr < 0
           @logger.info "worker=#{worker.nr} reopening logs..."
           Unicorn::Util.reopen_logs
@@ -517,6 +517,7 @@ module Unicorn
           if nr != 0 # (nr < 0) => reopen logs
             ready = LISTENERS
           else
+            master_pid == Process.ppid or exit(0)
             begin
               alive.chmod(nr += 1)
               # timeout used so we can detect parent death: