Sha256: b52882504e713bf927d18f172721952e646edf125fcc4eed9e1c13812046432b
Contents?: true
Size: 1.19 KB
Versions: 3
Compression:
Stored size: 1.19 KB
Contents
module Rpush module Daemon class SignalHandler class << self attr_reader :thread end def self.start return unless trap_signals? @shutting_down = false read_io, @write_io = IO.pipe start_handler(read_io) %w(INT TERM HUP USR2).each do |signal| Signal.trap(signal) { @write_io.write("#{Signal.list[signal]}\n") } end end def self.stop @write_io.write("shutdown\n") if @write_io @thread.join if @thread end def self.start_handler(read_io) @thread = Thread.new do loop do case read_io.readline.strip.to_i when Signal.list['HUP'] Synchronizer.sync Feeder.wakeup when Signal.list['USR2'] AppRunner.debug when Signal.list['INT'], Signal.list['TERM'] Thread.new { handle_shutdown_signal } else break end end end end def self.handle_shutdown_signal @shutting_down = true Rpush::Daemon.shutdown end def self.trap_signals? !Rpush.config.embedded end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rpush-2.0.0.rc1-java | lib/rpush/daemon/signal_handler.rb |
rpush-2.0.0.rc1 | lib/rpush/daemon/signal_handler.rb |
rpush-2.0.0.beta2 | lib/rpush/daemon/signal_handler.rb |