anchor.diff:              exit(Reason)
       after 0 ->
           {ok, {Pid, lhttpc_lib:dec(Window)}}
  -    end;
  -send_body_part({Pid, _Window}, http_eob, Timeout) when is_pid(Pid) ->
  -    Pid ! {body_part, self(), http_eob},
  -    read_response(Pid, Timeout).
  +    end.
   
   %% @spec (UploadState :: UploadState, Trailers) -> Result
   %%   Header = string() | binary() | atom()
  
positive.code:     after Timeout ->
          kill_client(Pid)
      end;
  send_body_part({Pid, Window}, Bin, _Timeout) 
          when Window > 0, is_binary(Bin), is_pid(Pid) ->
      Pid ! {body_part, self(), Bin},
      receive
          {ack, Pid} ->
              %% body_part ACK
  
negative.code: %% there is no response within `Timeout' milliseconds, the request is
  %% canceled and `{error, timeout}' is returned.
  %% @end
  -spec send_body_part({pid(), window_size()}, iolist(), timeout()) -> 
          {ok, {pid(), window_size()}} | result().
  send_body_part({Pid, _Window}, http_eob, Timeout) when is_pid(Pid) ->
      Pid ! {body_part, self(), http_eob},
      read_response(Pid, Timeout);
  send_body_part({Pid, 0}, IoList, Timeout) when is_pid(Pid) ->
      receive
          {ack, Pid} ->
              send_body_part({Pid, 1}, IoList, Timeout);
          {response, Pid, R} ->
              R;
          {exit, Pid, Reason} ->
  