From a17eb95355d73713cf7dff1e24c3cf26a57bd301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 15 Nov 2016 18:34:19 +0200 Subject: 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. --- src/ranch_conns_sup.erl | 1 + 1 file changed, 1 insertion(+) (limited to 'src/ranch_conns_sup.erl') 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. -- cgit v1.2.3