Module: SignalEmitter
- Included in:
- EventLoop, EventLoop::Timer, EventLoop::Watchable, SignalEmitterTest::X
- Defined in:
- lib/puppet/external/event-loop/signal-system.rb
Class Method Summary collapse
Instance Method Summary collapse
- #__maybe_initialize_signal_emitter ⇒ Object
- #__signal__(name, *args, &block) ⇒ Object
- #add_signal_handler(name, &handler) ⇒ Object
- #remove_signal_handler(name, handler) ⇒ Object
Class Method Details
.included(includer) ⇒ Object
65 66 67 |
# File 'lib/puppet/external/event-loop/signal-system.rb', line 65 def self.included (includer) includer.extend SignalEmitterClass if not includer.kind_of? SignalEmitterClass end |
Instance Method Details
#__maybe_initialize_signal_emitter ⇒ Object
69 70 71 72 |
# File 'lib/puppet/external/event-loop/signal-system.rb', line 69 def __maybe_initialize_signal_emitter @signal_handlers ||= Hash.new { |h, k| h[k] = Array.new } @allow_dynamic_signals ||= false end |
#__signal__(name, *args, &block) ⇒ Object
89 90 91 92 93 94 95 96 97 98 |
# File 'lib/puppet/external/event-loop/signal-system.rb', line 89 def __signal__ (name, *args, &block) __maybe_initialize_signal_emitter respond_to? "on_#{name}" or allow_dynamic_signals? or fail "undefined signal `#{name}' for #{self}:#{self.class}" __send__("handle_#{name}", *args, &block) if respond_to? "handle_#{name}" @signal_handlers[name].each { |x| x.call(*args, &block) } __send__("after_handle_#{name}", *args, &block) if respond_to? "after_handle_#{name}" end |
#add_signal_handler(name, &handler) ⇒ Object
76 77 78 79 80 |
# File 'lib/puppet/external/event-loop/signal-system.rb', line 76 def add_signal_handler (name, &handler) __maybe_initialize_signal_emitter @signal_handlers[name] << handler handler end |
#remove_signal_handler(name, handler) ⇒ Object
84 85 86 87 |
# File 'lib/puppet/external/event-loop/signal-system.rb', line 84 def remove_signal_handler (name, handler) __maybe_initialize_signal_emitter @signal_handlers[name].delete(handler) end |