class HTTP::Timeout::PerOperation

def write(data)

Write data to the socket
def write(data)
  socket.write_nonblock(data)
rescue IO::WaitWritable
  if IO.select(nil, [socket], nil, write_timeout)
    retry
  else
    raise TimeoutError, "Read timed out after #{write_timeout} seconds"
  end
end