mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
Ensure HTTP/1.1 Websocket resets the trap_exit flag
While we are identified as a supervisor in the tree, we no longer manage children processes at that point, so do not need to trap exit signals. Users can still enable trap_exit if they prefer to.
This commit is contained in:
parent
9784179498
commit
c1490d7d55
5 changed files with 17 additions and 2 deletions
|
@ -1212,11 +1212,13 @@ commands(State0=#state{ref=Ref, parent=Parent, socket=Socket, transport=Transpor
|
|||
_ -> State
|
||||
end,
|
||||
#stream{state=StreamState} = lists:keyfind(StreamID, #stream.id, Streams),
|
||||
%% @todo We need to shutdown processes here first.
|
||||
stream_call_terminate(StreamID, switch_protocol, StreamState, State),
|
||||
%% Terminate children processes and flush any remaining messages from the mailbox.
|
||||
cowboy_children:terminate(Children),
|
||||
flush(Parent),
|
||||
%% Turn off the trap_exit process flag
|
||||
%% since this process will no longer be a supervisor.
|
||||
process_flag(trap_exit, false),
|
||||
Protocol:takeover(Parent, Ref, Socket, Transport, Opts, Buffer, InitialState);
|
||||
%% Set options dynamically.
|
||||
commands(State0=#state{overriden_opts=Opts},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue