Lawrence Pit <[email protected]> wrote:
> Hi Eric,
>
> Not that it really matters to me, but I thought I let you know, just in
> case you think it does matter: after sending a WINCH should you decide
> to send TTINs then that has no effect. ( whereas if you dropped slowly
> by sending TTOUs, then when it reaches 0 workers you can still send TTINs
> )
Hi Lawrence, thanks for noticing this. Apparently nobody did before :)
The following patch *should* work (untested).
I'll write a proper test case later today if nobody beats me to it.
diff --git a/lib/unicorn.rb b/lib/unicorn.rb
index c231a4d..8f490bb 100644
--- a/lib/unicorn.rb
+++ b/lib/unicorn.rb
@@ -423,10 +423,12 @@ module Unicorn
respawn = false
logger.info "gracefully stopping all workers"
kill_each_worker(:QUIT)
+ self.worker_processes = 0
else
logger.info "SIGWINCH ignored because we're not daemonized"
end
when :TTIN
+ respawn = true
self.worker_processes += 1
when :TTOU
self.worker_processes -= 1 if self.worker_processes > 0
--
Eric Wong
_______________________________________________
Unicorn mailing list - [email protected]
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying