class Oxidized::Signals

Attributes

handlers[RW]

Public Class Methods

handle_signal(signum) click to toggle source
# File lib/oxidized/signals.rb, line 35
def handle_signal(signum)
  return unless handlers.has_key?(signum)

  @handlers[signum].each do |handler|
    handler.call
  end
end
register_signal(sig, procobj) click to toggle source
# File lib/oxidized/signals.rb, line 21
def register_signal(sig, procobj)
  # Compute short name of the signal (without SIG prefix)
  sigshortname = sig.gsub "SIG", ''
  signum = Signal.list[sigshortname]

  # Register the handler with OS
  Signal.trap signum do
    Oxidized::Signals.handle_signal(signum)
  end

  # Add the proc to the handler list for the requested signal
  @handlers[signum].push(procobj)
end