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,13 +4,9 @@ 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)
when :write
wait_writable(timeout)
when :read_write
r, w = IO.select([self], [self], nil, timeout) r, w = IO.select([self], [self], nil, timeout)
return unless r || w return unless r || w
@ -19,7 +15,6 @@ module IOExtensions
end end
end end
end end
end
class HTTPX::Selector class HTTPX::Selector
READABLE = %i[rw r].freeze READABLE = %i[rw r].freeze