Class: DTAS::Sigevent

Inherits:
SleepyPenguin::EventFD
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSigevent

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_ioObject (readonly)

:nodoc:



7
8
9
# File 'lib/dtas/sigevent/pipe.rb', line 7

def to_io
  @to_io
end

Class Method Details

.newObject

:nodoc:



7
8
9
# File 'lib/dtas/sigevent/efd.rb', line 7

def self.new
  super(0, :CLOEXEC)
end

Instance Method Details

#closeObject



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

Yields:

  • (_self, nil)

Yield Parameters:



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

#signalObject



11
12
13
# File 'lib/dtas/sigevent/efd.rb', line 11

def signal
  incr(1)
end