diff options
Diffstat (limited to 'lib/rainbows/rev/heartbeat.rb')
-rw-r--r-- | lib/rainbows/rev/heartbeat.rb | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/lib/rainbows/rev/heartbeat.rb b/lib/rainbows/rev/heartbeat.rb index f348a08..c4a9bb9 100644 --- a/lib/rainbows/rev/heartbeat.rb +++ b/lib/rainbows/rev/heartbeat.rb @@ -1,23 +1,20 @@ # -*- encoding: binary -*- # :enddoc: -module Rainbows - module Rev - - # This class handles the Unicorn fchmod heartbeat mechanism - # in Rev-based concurrency models to prevent the master - # process from killing us unless we're blocked. This class - # will also detect and execute the graceful exit if triggered - # by SIGQUIT - class Heartbeat < ::Rev::TimerWatcher - - def on_timer - if (ot = G.kato) >= 0 - ot = Time.now - ot - KATO.delete_if { |client, time| time < ot and client.timeout? } - end - exit if (! G.tick && CONN.size <= 0) - end +# This class handles the Unicorn fchmod heartbeat mechanism +# in Rev-based concurrency models to prevent the master +# process from killing us unless we're blocked. This class +# will also detect and execute the graceful exit if triggered +# by SIGQUIT +class Rainbows::Rev::Heartbeat < Rev::TimerWatcher + KATO = Rainbows::Rev::KATO + CONN = Rainbows::Rev::CONN + G = Rainbows::G + def on_timer + if (ot = G.kato) >= 0 + ot = Time.now - ot + KATO.delete_if { |client, time| time < ot and client.timeout? } end + exit if (! G.tick && CONN.size <= 0) end end |