mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 20:30:23 +00:00
Don't terminate streams that were already terminated
This and the issues in the last two commits were reported by leo2007 on IRC.
This commit is contained in:
parent
cad3e3f63d
commit
cbf7972f10
1 changed files with 3 additions and 0 deletions
|
@ -689,6 +689,9 @@ terminate_reason({internal_error, _, _}) -> internal_error.
|
||||||
|
|
||||||
terminate_all_streams([], _, []) ->
|
terminate_all_streams([], _, []) ->
|
||||||
ok;
|
ok;
|
||||||
|
%% This stream was already terminated and is now just flushing the data out. Skip it.
|
||||||
|
terminate_all_streams([#stream{state=flush}|Tail], Reason, Children) ->
|
||||||
|
terminate_all_streams(Tail, Reason, Children);
|
||||||
terminate_all_streams([#stream{id=StreamID, state=StreamState}|Tail], Reason, Children0) ->
|
terminate_all_streams([#stream{id=StreamID, state=StreamState}|Tail], Reason, Children0) ->
|
||||||
stream_call_terminate(StreamID, Reason, StreamState),
|
stream_call_terminate(StreamID, Reason, StreamState),
|
||||||
Children = stream_terminate_children(Children0, StreamID, []),
|
Children = stream_terminate_children(Children0, StreamID, []),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue