diff options
author | Eric Wong <e@80x24.org> | 2016-06-07 04:07:18 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-06-07 04:07:39 +0000 |
commit | 46614f480a8b8f54ee32e670306c554d016bf3df (patch) | |
tree | e02651cbac3a6f97ab46b3493c86804fe6d433d4 /lib/yahns/server.rb | |
parent | 77aac8c54ac030b08cfe6bcafc6fd155854456a7 (diff) | |
download | yahns-46614f480a8b8f54ee32e670306c554d016bf3df.tar.gz |
Using a 10ms tick was too little, use 100ms instead to avoid burning CPU. Ideally, we would not tick at all during shutdown (we're normally tickless); but the common case could be slightly more expensive; and shutdowns are rare (I hope). Then, change our process title to indicate we're shutting down, and finally, cut down on repeated log spew during shutdown and only log dropping changes. This mean we could potentially take 90ms longer to notice when we can do a graceful shutdown, but oh well... While we're at it, add a test to ensure graceful shutdowns work as intended with multiple processes.
Diffstat (limited to 'lib/yahns/server.rb')
-rw-r--r-- | lib/yahns/server.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/yahns/server.rb b/lib/yahns/server.rb index ba2066b..00e5f15 100644 --- a/lib/yahns/server.rb +++ b/lib/yahns/server.rb @@ -496,7 +496,8 @@ class Yahns::Server # :nodoc: def dropping(fdmap) if drop_acceptors[0] || fdmap.size > 0 timeout = @shutdown_expire < Yahns.now ? -1 : @shutdown_timeout - fdmap.desperate_expire(timeout) + n = fdmap.desperate_expire(timeout) + $0 = "yahns quitting, #{n} FD(s) remain" true else false |