Просмотр исходного кода

Get rid of stray messages when killing HTTP/2 request processes

Loïc Hoguin 8 лет назад
Родитель
Сommit
b7210d6d1a
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      src/cowboy_http2.erl

+ 3 - 0
src/cowboy_http2.erl

@@ -693,6 +693,9 @@ stream_call_terminate(StreamID, Reason, StreamState) ->
 stream_terminate_children([], _, Acc) ->
 	Acc;
 stream_terminate_children([{Pid, StreamID}|Tail], StreamID, Acc) ->
+	%% We unlink and flush the mailbox to avoid receiving a stray message.
+	unlink(Pid),
+	receive {'EXIT', Pid, _} -> ok after 0 -> ok end,
 	exit(Pid, kill),
 	stream_terminate_children(Tail, StreamID, Acc);
 stream_terminate_children([Child|Tail], StreamID, Acc) ->