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

Reply via email to