doc: misc cleanups and additions for RDoc
[rainbows.git] / lib / rainbows / rev / heartbeat.rb
blobc4a9bb990be1ae950b618727dca65780cb189a7b
1 # -*- encoding: binary -*-
2 # :enddoc:
3 # This class handles the Unicorn fchmod heartbeat mechanism
4 # in Rev-based concurrency models to prevent the master
5 # process from killing us unless we're blocked.  This class
6 # will also detect and execute the graceful exit if triggered
7 # by SIGQUIT
8 class Rainbows::Rev::Heartbeat < Rev::TimerWatcher
9   KATO = Rainbows::Rev::KATO
10   CONN = Rainbows::Rev::CONN
11   G = Rainbows::G
13   def on_timer
14     if (ot = G.kato) >= 0
15       ot = Time.now - ot
16       KATO.delete_if { |client, time| time < ot and client.timeout? }
17     end
18     exit if (! G.tick && CONN.size <= 0)
19   end
20 end