class HTTP::Request::Writer

def write(data)

def write(data)
  until data.empty?
    length = @socket.write(data)
    break unless data.bytesize > length
    data = data.byteslice(length..-1)
  end
rescue Errno::EPIPE
  raise
rescue IOError, SocketError, SystemCallError => e
  raise ConnectionError, "error writing to socket: #{e}", e.backtrace
end