dtas.git  about / heads / tags
duct tape audio suite for *nix
blob 2cf086cb9ab10198165aca9b071f16773fec9271 592 bytes (raw)
$ git show v0.18.0:lib/dtas/nonblock.rb	# shows this blob on the CLI

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
# Copyright (C) 2015-2020 all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>

class DTAS::Nonblock < IO # :nodoc:
  if RUBY_VERSION.to_f <= 2.0
    EX = {}.freeze
    def read_nonblock(len, buf = nil, opts = EX)
      super(len, buf)
    rescue IO::WaitReadable
      raise if opts[:exception]
      :wait_readable
    rescue EOFError
      raise if opts[:exception]
      nil
    end

    def write_nonblock(buf, opts = EX)
      super(buf)
    rescue IO::WaitWritable
      raise if opts[:exception]
      :wait_writable
    end
  end
end

git clone git://80x24.org/dtas.git
git clone https://80x24.org/dtas.git