module Ethon::Multies::Operations

def set_fds(timeout)

Raises:
  • (Ethon::Errors::Select) - when select failed.
  • (Ethon::Errors::MultiFdset) - when setting the file descriptors failed.

Other tags:
    Example: Set fds. -
def set_fds(timeout)
  code = Curl.multi_fdset(handle, @fd_read, @fd_write, @fd_excep, @max_fd)
  raise Errors::MultiFdset.new(code) unless code == :ok
  max_fd = @max_fd.read_int
  if max_fd == -1
    sleep(0.001)
  else
    @timeval[:sec] = timeout / 1000
    @timeval[:usec] = (timeout * 1000) % 1000000
    code = Curl.select(max_fd + 1, @fd_read, @fd_write, @fd_excep, @timeval)
    raise Errors::Select.new(::FFI.errno) if code < 0
  end
end