class HTTP::Request::Writer

def send_request

def send_request
  # It's important to send the request in a single write call when
  # possible in order to play nicely with Nagle's algorithm. Making
  # two writes in a row triggers a pathological case where Nagle is
  # expecting a third write that never happens.
  data = join_headers
  @body.each do |chunk|
    data << encode_chunk(chunk)
    write(data)
    data.clear
  end
  write(data) unless data.empty?
  write(CHUNKED_END) if chunked?
end