From 10037f2aabb3fab4296fc90c615e7caa9f4a9b53 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 27 Oct 2010 01:44:33 +0000 Subject: fix delays in signal handling There is no need to loop in the master_sleep method at all, as the rest of the code is designed to function even on interrupted sleeps. This change is included as part of a larger cleanup in master. (commit bdc79712e5ac53d39c51e80dfe50aff950e5053f) --- lib/unicorn.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/unicorn.rb b/lib/unicorn.rb index e2d1ac1..f454eb7 100644 --- a/lib/unicorn.rb +++ b/lib/unicorn.rb @@ -488,12 +488,9 @@ module Unicorn # wait for a signal hander to wake us up and then consume the pipe # Wake up every second anyways to run murder_lazy_workers def master_sleep(sec) - begin - IO.select([ SELF_PIPE.first ], nil, nil, sec) or return - SELF_PIPE.first.read_nonblock(Const::CHUNK_SIZE, HttpRequest::BUF) + IO.select([ SELF_PIPE[0] ], nil, nil, sec) or return + SELF_PIPE[0].read_nonblock(Const::CHUNK_SIZE, HttpRequest::BUF) rescue Errno::EAGAIN, Errno::EINTR - break - end while true end def awaken_master -- cgit v1.2.3-24-ge0c7