diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-04-24 01:21:31 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-04-24 01:21:31 -0700 |
commit | e93f84e28f0da4ce7aa21d714f0504677f4bf6f6 (patch) | |
tree | 265bc52928adec0c9d5c69bc0afec5a8d91c5ab1 /lib/unicorn.rb | |
parent | a60c5ddaf8082c5a59a68fb0b726a520c4e94e19 (diff) | |
download | unicorn-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.rb | 3 |
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: |