class HTTP::Timeout::PerOperation

def connect_ssl

def connect_ssl
  socket.connect_nonblock
rescue IO::WaitReadable
  if IO.select([socket], nil, nil, connect_timeout)
    retry
  else
    raise TimeoutError, "Connection timed out after #{connect_timeout} seconds"
  end
rescue IO::WaitWritable
  if IO.select(nil, [socket], nil, connect_timeout)
    retry
  else
    raise TimeoutError, "Connection timed out after #{connect_timeout} seconds"
  end
end