anchor.diff:  
   -spec send_request(pid(), hpack:headers(), binary()) -> ok.
   send_request(Pid, Headers, Body) ->
  -    gen_fsm:send_all_state_event(Pid, {send_request, self(), Headers, Body}),
  +    gen_fsm:sync_send_all_state_event(Pid, {send_request, self(), Headers, Body}, infinity),
       ok.
   
   -spec get_peer(pid()) ->
  
positive.code:         {ok, _Cert}=OK ->
              {reply, OK, StateName, Conn}
      end;
  handle_sync_event(_E, _F, StateName,
                    #connection{}=Conn) ->
      {next_state, StateName, Conn}.
  
negative.code:         Pid ->
              gen_fsm:send_event(Pid, {recv_data, Frame})
      end.
  
  send_request(NextId, NotifyPid, Conn, Streams, Headers, Body) ->
      case
          h2_stream_set:new_stream(
              NextId,
              NotifyPid,
              Conn#connection.stream_callback_mod,
              Conn#connection.socket,
              Conn#connection.peer_settings#settings.initial_window_size,
              Conn#connection.self_settings#settings.initial_window_size,
              Streams)
      of
          {error, Code, _NewStream} ->
              lager:warning("[~p] tried to create new_stream ~p, but error ~p",
                  [Conn#connection.type, NextId, Code]),
  
              {error, Code};
          GoodStreamSet ->
              lager:debug("[~p] added stream #~p to ~p",
                  [Conn#connection.type, NextId, GoodStreamSet]),
  
              send_headers(self(), NextId, Headers),
              send_body(self(), NextId, Body),
  
              {ok, GoodStreamSet}
      end.