diff options
Diffstat (limited to 'lib/dtas/sigevent')
-rw-r--r-- | lib/dtas/sigevent/fiddle_efd.rb | 7 | ||||
-rw-r--r-- | lib/dtas/sigevent/pipe.rb | 5 |
2 files changed, 5 insertions, 7 deletions
diff --git a/lib/dtas/sigevent/fiddle_efd.rb b/lib/dtas/sigevent/fiddle_efd.rb index 40cec77..8bfa332 100644 --- a/lib/dtas/sigevent/fiddle_efd.rb +++ b/lib/dtas/sigevent/fiddle_efd.rb @@ -1,10 +1,9 @@ -# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org> +# Copyright (C) all contributors <dtas-all@nongnu.org> # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt> # frozen_string_literal: true # used in various places for safe wakeups from IO.select via signals # This requires a modern GNU/Linux system with eventfd(2) support -require_relative '../nonblock' require 'fiddle' class DTAS::Sigevent # :nodoc: @@ -13,12 +12,12 @@ class DTAS::Sigevent # :nodoc: Fiddle::TYPE_INT) # fd attr_reader :to_io - ONE = [ 1 ].pack('Q').freeze + ONE = -([ 1 ].pack('Q')) def initialize fd = EventFD.call(0, 02000000|00004000) # EFD_CLOEXEC|EFD_NONBLOCK raise "eventfd failed: #{Fiddle.last_error}" if fd < 0 - @to_io = DTAS::Nonblock.for_fd(fd) + @to_io = IO.for_fd(fd) @buf = ''.b end diff --git a/lib/dtas/sigevent/pipe.rb b/lib/dtas/sigevent/pipe.rb index e6fbbf2..6c3b83c 100644 --- a/lib/dtas/sigevent/pipe.rb +++ b/lib/dtas/sigevent/pipe.rb @@ -1,15 +1,14 @@ -# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org> +# Copyright (C) all contributors <dtas-all@nongnu.org> # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt> # frozen_string_literal: true # used in various places for safe wakeups from IO.select via signals # A fallback for non-Linux systems lacking the "splice" syscall -require_relative '../nonblock' class DTAS::Sigevent # :nodoc: attr_reader :to_io def initialize - @to_io, @wr = DTAS::Nonblock.pipe + @to_io, @wr = IO.pipe @rbuf = ''.b end |