0
Fork 0
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:
Loïc Hoguin 2017-05-31 13:20:12 +02:00
parent cad3e3f63d
commit cbf7972f10
No known key found for this signature in database
GPG key ID: 71366FF21851DF03

View file

@ -689,6 +689,9 @@ terminate_reason({internal_error, _, _}) -> internal_error.
terminate_all_streams([], _, []) ->
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) ->
stream_call_terminate(StreamID, Reason, StreamState),
Children = stream_terminate_children(Children0, StreamID, []),