Module: Spectator::Control
- Included in:
- Runner
- Defined in:
- lib/spectator/control.rb
Instance Attribute Summary collapse
-
#signal_queue ⇒ Object
readonly
Returns the value of attribute signal_queue.
Instance Method Summary collapse
Instance Attribute Details
#signal_queue ⇒ Object (readonly)
Returns the value of attribute signal_queue.
41 42 43 |
# File 'lib/spectator/control.rb', line 41 def signal_queue @signal_queue end |
Instance Method Details
#abort! ⇒ Object
11 12 13 14 |
# File 'lib/spectator/control.rb', line 11 def abort! puts '--- Forcing abort...'.white Kernel.abort("\n") end |
#exit ⇒ Object
5 6 7 8 9 |
# File 'lib/spectator/control.rb', line 5 def exit @exiting = true puts '--- Exiting...'.white Kernel.exit end |
#trap_int! ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/spectator/control.rb', line 16 def trap_int! # Ctrl-C @interrupted ||= false @signal_queue = [] @signals_handler = Thread.new do loop do sleep(0.3) if signal_queue.any? listener.pause ask_what_to_do! listener.unpause Thread.pass signal_queue.shift end end end Signal.trap('INT') do abort! if exiting? start_exit if interrupted? signal_queue << :int puts ' (Interrupted with CTRL+C)'.red end end |