Sha256: 0d686ba6896af96285d0821b1e897dcecbe98c9b96171f3fc367fc2ae465ed45

Contents?: true

Size: 408 Bytes

Versions: 9

Compression:

Stored size: 408 Bytes

Contents

require "fcntl"
class IO
  def nonblock?
    (fcntl(Fcntl::F_GETFL) & File::NONBLOCK) != 0
  end

  def nonblock=(nb)
    f = fcntl(Fcntl::F_GETFL)
    if nb
      f |= File::NONBLOCK
    else
      f &= ~File::NONBLOCK
    end
    fcntl(Fcntl::F_SETFL, f)
  end

  def nonblock(nb = true)
    nb, self.nonblock = nonblock?, nb
    yield
  ensure
    self.nonblock = nb
  end
end if defined?(Fcntl::F_GETFL)

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
rubysl-io-nonblock-2.0.0 lib/rubysl/io/nonblock/nonblock.rb
shoesgem-0.1514.0 shoes/ruby/lib/io/nonblock.rb
shoesgem-0.1480.0 shoes/ruby/lib/io/nonblock.rb
shoesgem-0.1469.0 shoes/ruby/lib/io/nonblock.rb
shoesgem-0.1430.0 shoes/ruby/lib/io/nonblock.rb
shoesgem-0.1429.0 shoes/ruby/lib/io/nonblock.rb
shoesgem-0.1428.0 shoes/ruby/lib/io/nonblock.rb
shoesgem-0.1426.0 shoes/ruby/lib/io/nonblock.rb
shoesgem-0.1424.0 shoes/ruby/lib/io/nonblock.rb