From bd6425ab87428cf4c95f4d23e0a48fd065fbd714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 4 Nov 2019 12:29:16 +0100 Subject: Fix a crash introduced in the previous commit --- src/gun_http2.erl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gun_http2.erl b/src/gun_http2.erl index eb6f06c..8746b3e 100644 --- a/src/gun_http2.erl +++ b/src/gun_http2.erl @@ -769,10 +769,15 @@ create_stream(State=#http2_state{streams=Streams, stream_refs=Refs}, store_stream(State=#http2_state{streams=Streams}, Stream=#stream{id=StreamID}) -> State#http2_state{streams=Streams#{StreamID => Stream}}. -take_stream(State=#http2_state{streams=Streams0}, StreamID) -> +take_stream(State=#http2_state{streams=Streams0, stream_refs=Refs}, StreamID) -> case maps:take(StreamID, Streams0) of - {Stream, Streams} -> {Stream, State#http2_state{streams=Streams}}; - error -> error + {Stream=#stream{ref=StreamRef}, Streams} -> + {Stream, State#http2_state{ + streams=Streams, + stream_refs=maps:remove(StreamRef, Refs) + }}; + error -> + error end. maybe_delete_stream(State=#http2_state{http2_machine=HTTP2Machine}, StreamID, local, fin) -> -- cgit v1.2.3