diff options
author | Loïc Hoguin <[email protected]> | 2016-11-15 18:34:19 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2016-11-15 18:34:19 +0200 |
commit | a17eb95355d73713cf7dff1e24c3cf26a57bd301 (patch) | |
tree | 9f1935f26455a4a76fe8d4d3dbabae5c33ce9d18 /src/ranch_conns_sup.erl | |
parent | c3eb7832e23aa7cdd3dcfea724c17dc9b54657dd (diff) | |
download | ranch-a17eb95355d73713cf7dff1e24c3cf26a57bd301.tar.gz ranch-a17eb95355d73713cf7dff1e24c3cf26a57bd301.tar.bz2 ranch-a17eb95355d73713cf7dff1e24c3cf26a57bd301.zip |
Fix acceptors getting stuck because of socket errors
We always get the acceptor to resume. The child process will
be killed, and the current code will ignore any EXIT message
when that happens because the pid isn't in the process dictionary.
Diffstat (limited to 'src/ranch_conns_sup.erl')
-rw-r--r-- | src/ranch_conns_sup.erl | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/ranch_conns_sup.erl b/src/ranch_conns_sup.erl index a678881..c448374 100644 --- a/src/ranch_conns_sup.erl +++ b/src/ranch_conns_sup.erl @@ -234,6 +234,7 @@ shoot(State=#state{ref=Ref, transport=Transport, ack_timeout=AckTimeout, max_con %% Only kill the supervised pid, because the connection's pid, %% when different, is supposed to be sitting under it and linked. exit(SupPid, kill), + To ! self(), loop(State, CurConns, NbChildren, Sleepers) end. |