Class: Cosmo::Utils::Signal

Inherits:
Object
  • Object
show all
Defined in:
lib/cosmo/utils/signal.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*signals) ⇒ Signal

Returns a new instance of Signal.



10
11
12
13
# File 'lib/cosmo/utils/signal.rb', line 10

def initialize(*signals)
  @queue = Queue.new
  signals.each { |s| ::Signal.trap(s) { push(s) } }
end

Class Method Details

.trapObject



6
7
8
# File 'lib/cosmo/utils/signal.rb', line 6

def self.trap(...)
  new(...)
end

Instance Method Details

#push(signal) ⇒ Object



19
20
21
# File 'lib/cosmo/utils/signal.rb', line 19

def push(signal)
  @queue.push(signal)
end

#waitObject



15
16
17
# File 'lib/cosmo/utils/signal.rb', line 15

def wait
  @queue.pop # Wait indefinitely for a signal
end