anchor.diff:  	inactivity_timeout => timeout(),
   	initial_connection_window_size => 65535..16#7fffffff,
   	initial_stream_window_size => 0..16#7fffffff,
  +	linger_timeout => timeout(),
   	logger => module(),
   	max_concurrent_streams => non_neg_integer() | infinity,
   	max_connection_buffer_size => non_neg_integer(),
  
positive.code: terminate_all_streams(State, [{StreamID, #stream{state=StreamState}}|Tail], Reason) ->
  	terminate_stream_handler(State, StreamID, Reason, StreamState),
  	terminate_all_streams(State, Tail, Reason).
  
  %% @todo Don't send an RST_STREAM if one was already sent.
  reset_stream(State0=#state{socket=Socket, transport=Transport,
  
negative.code: 	end,
  	terminate_all_streams(State, maps:to_list(Streams), Reason),
  	cowboy_children:terminate(Children),
  	terminate_linger(State),
  	exit({shutdown, Reason});
  terminate(#state{socket=Socket, transport=Transport}, Reason) ->
  	Transport:close(Socket),
  