Class: Cosmo::Utils::Signal

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*signals) ⇒ Signal

Returns a new instance of Signal.

Parameters:

  • signals (Symbol)


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

.trapSignal

Parameters:

  • signals (Symbol)

Returns:



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

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

Instance Method Details

#push(signal) ⇒ void

This method returns an undefined value.

Parameters:

  • (Symbol)


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

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

#waitSymbol

Returns:

  • (Symbol)


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

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