Class: DTAS::Sigevent
- Inherits:
-
SleepyPenguin::EventFD
- Object
- SleepyPenguin::EventFD
- DTAS::Sigevent
- Defined in:
- lib/dtas/sigevent/efd.rb,
lib/dtas/sigevent/pipe.rb
Overview
used in various places for safe wakeups from IO.select via signals A fallback for non-Linux systems lacking the “sleepy_penguin” RubyGem
Instance Attribute Summary collapse
-
#to_io ⇒ Object
readonly
:nodoc:.
Class Method Summary collapse
-
.new ⇒ Object
:nodoc:.
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize ⇒ Sigevent
constructor
A new instance of Sigevent.
- #readable_iter {|_self, nil| ... } ⇒ Object
- #signal ⇒ Object
Constructor Details
#initialize ⇒ Sigevent
Returns a new instance of Sigevent.
9 10 11 |
# File 'lib/dtas/sigevent/pipe.rb', line 9 def initialize @to_io, @wr = IO.pipe end |
Instance Attribute Details
#to_io ⇒ Object (readonly)
:nodoc:
7 8 9 |
# File 'lib/dtas/sigevent/pipe.rb', line 7 def to_io @to_io end |
Class Method Details
.new ⇒ Object
:nodoc:
7 8 9 |
# File 'lib/dtas/sigevent/efd.rb', line 7 def self.new super(0, :CLOEXEC) end |
Instance Method Details
#close ⇒ Object
26 27 28 29 |
# File 'lib/dtas/sigevent/pipe.rb', line 26 def close @to_io.close @wr.close end |
#readable_iter {|_self, nil| ... } ⇒ Object
15 16 17 18 19 |
# File 'lib/dtas/sigevent/efd.rb', line 15 def readable_iter value(true) yield self, nil # calls DTAS::Process.reaper :wait_readable end |
#signal ⇒ Object
11 12 13 |
# File 'lib/dtas/sigevent/efd.rb', line 11 def signal incr(1) end |