simplified refined IO#wait, as it's designed for a certain niche feature

This commit is contained in:
HoneyryderChuck 2020-12-02 00:59:43 +00:00
parent d3a6edeecb
commit 6fbd8da838

View File

@ -4,19 +4,14 @@ require "io/wait"
module IOExtensions module IOExtensions
refine IO do refine IO do
def wait(timeout = nil, mode = :read) # provides a fallback for rubies where IO#wait isn't implemented,
case mode # but IO#wait_readable and IO#wait_writable are.
when :read def wait(timeout = nil, _mode = :read_write)
wait_readable(timeout) r, w = IO.select([self], [self], nil, timeout)
when :write
wait_writable(timeout)
when :read_write
r, w = IO.select([self], [self], nil, timeout)
return unless r || w return unless r || w
self self
end
end end
end end
end end