From bb9f91b8658ab304a7038bcbca80dd518f53e026 Mon Sep 17 00:00:00 2001 From: James Fish Date: Mon, 1 Apr 2013 23:47:02 +0100 Subject: Add ranch_server state recovery When ranch_server crashes it will now remonitor previously registered ranch_conns_sup processes so they can be removed from the registry when they die. --- src/ranch_server.erl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/ranch_server.erl') diff --git a/src/ranch_server.erl b/src/ranch_server.erl index d827ae2..7557d53 100644 --- a/src/ranch_server.erl +++ b/src/ranch_server.erl @@ -114,7 +114,9 @@ count_connections(Ref) -> %% @private init([]) -> - {ok, #state{}}. + Monitors = [{{erlang:monitor(process, Pid), Pid}, Ref} || + [Ref, Pid] <- ets:match(?TAB, {{conns_sup, '$1'}, '$2'})], + {ok, #state{monitors=Monitors}}. %% @private handle_call({set_new_listener_opts, Ref, MaxConns, Opts}, _, State) -> -- cgit v1.2.3