about summary refs log tree commit homepage
path: root/lib/dtas/sigevent/efd.rb
blob: 1fef01308a517988a9cbd4e5cc9ce6e620327d36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- encoding: binary -*-
# Copyright (C) 2013, Eric Wong <normalperson@yhbt.net> and all contributors
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
class DTAS::Sigevent < SleepyPenguin::EventFD # :nodoc:
  include SleepyPenguin

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

  def signal
    incr(1)
  end

  def readable_iter
    value(true)
    yield self, nil # calls DTAS::Process.reaper
    :wait_readable
  end
end