aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJose M Perez <[email protected]>2019-09-01 22:11:21 +0200
committerJose M Perez <[email protected]>2019-09-01 22:11:21 +0200
commit1db8290685e9cff3dfafde62de6148246075990a (patch)
tree67ae0fbc6f31ed11f605abf0b94731f45eea2bf9 /src
parent087376c9142cf1bde2ae474ccad5768a12238bfd (diff)
downloadranch-1db8290685e9cff3dfafde62de6148246075990a.tar.gz
ranch-1db8290685e9cff3dfafde62de6148246075990a.tar.bz2
ranch-1db8290685e9cff3dfafde62de6148246075990a.zip
Removed connections trigger acceptors wake-up
Diffstat (limited to 'src')
-rw-r--r--src/ranch_conns_sup.erl6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ranch_conns_sup.erl b/src/ranch_conns_sup.erl
index 389deb0..9b85b25 100644
--- a/src/ranch_conns_sup.erl
+++ b/src/ranch_conns_sup.erl
@@ -147,8 +147,12 @@ loop(State=#state{parent=Parent, ref=Ref, conn_type=ConnType,
%% Remove a connection from the count of connections.
{remove_connection, Ref, Pid} ->
case put(Pid, removed) of
- active ->
+ active when Sleepers =:= [] ->
loop(State, CurConns - 1, NbChildren, Sleepers);
+ active ->
+ [To|Sleepers2] = Sleepers,
+ To ! self(),
+ loop(State, CurConns - 1, NbChildren, Sleepers2);
removed ->
loop(State, CurConns, NbChildren, Sleepers);
undefined ->