1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/io/wait/lib/nonblock.rb
nobu ca829d5926 * ext/io/wait/lib/nonblock.rb: disable on platforms non-blocking flag
is not available.  fixed: [ruby-dev:27187]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-20 12:26:58 +00:00

23 lines
408 B
Ruby

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)