module Kontena::Websocket::Client::Connection::Waitable_Ruby2_2

ruby version <= 2.2

io/wait IO#wait_readable returns nil on EOF

Public Instance Methods

wait_socket_readable!(socket, timeout = nil) click to toggle source

@param socket [Socket] @param timeout [Float] default (nil) blocks indefinitely @raise [Kontena::Websocket::TimeoutError]

# File lib/kontena/websocket/client/connection.rb, line 37
def wait_socket_readable!(socket, timeout = nil)
  debug "wait read: timeout=#{timeout}"

  unless IO.select([socket], nil, nil, timeout)
    raise Kontena::Websocket::TimeoutError, "read timeout after #{timeout}s"
  end
end
wait_socket_writable!(socket, timeout = nil) click to toggle source

@param socket [Socket] @param timeout [Float] default (nil) blocks indefinitely @raise [Kontena::Websocket::TimeoutError]

# File lib/kontena/websocket/client/connection.rb, line 48
def wait_socket_writable!(socket, timeout = nil)
  debug "wait write: timeout=#{timeout}"

  unless IO.select(nil, [socket], nil, timeout)
    raise Kontena::Websocket::TimeoutError, "write timeout after #{timeout}s"
  end
end