From 1db8290685e9cff3dfafde62de6148246075990a Mon Sep 17 00:00:00 2001 From: Jose M Perez Date: Sun, 1 Sep 2019 22:11:21 +0200 Subject: Removed connections trigger acceptors wake-up --- src/ranch_conns_sup.erl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') 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 -> -- cgit v1.2.3