diff options
author | Jose M Perez <[email protected]> | 2019-09-01 22:11:21 +0200 |
---|---|---|
committer | Jose M Perez <[email protected]> | 2019-09-01 22:11:21 +0200 |
commit | 1db8290685e9cff3dfafde62de6148246075990a (patch) | |
tree | 67ae0fbc6f31ed11f605abf0b94731f45eea2bf9 /src/ranch_conns_sup.erl | |
parent | 087376c9142cf1bde2ae474ccad5768a12238bfd (diff) | |
download | ranch-1db8290685e9cff3dfafde62de6148246075990a.tar.gz ranch-1db8290685e9cff3dfafde62de6148246075990a.tar.bz2 ranch-1db8290685e9cff3dfafde62de6148246075990a.zip |
Removed connections trigger acceptors wake-up
Diffstat (limited to 'src/ranch_conns_sup.erl')
-rw-r--r-- | src/ranch_conns_sup.erl | 6 |
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 -> |