From 4b80e31bc48a7fd8552ee34f59de26c790b19ceb Mon Sep 17 00:00:00 2001 From: juhlig Date: Wed, 19 Feb 2020 11:49:17 +0100 Subject: Prevent side effects in init of supervisors --- src/ranch_acceptors_sup.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/ranch_acceptors_sup.erl') diff --git a/src/ranch_acceptors_sup.erl b/src/ranch_acceptors_sup.erl index 0976a12..f6f26c7 100644 --- a/src/ranch_acceptors_sup.erl +++ b/src/ranch_acceptors_sup.erl @@ -28,7 +28,14 @@ init([Ref, Transport, Logger]) -> TransOpts = ranch_server:get_transport_options(Ref), NumAcceptors = maps:get(num_acceptors, TransOpts, 10), NumListenSockets = maps:get(num_listen_sockets, TransOpts, 1), - LSockets = start_listen_sockets(Ref, NumListenSockets, Transport, TransOpts, Logger), + LSockets = case get(lsockets) of + undefined -> + LSockets1 = start_listen_sockets(Ref, NumListenSockets, Transport, TransOpts, Logger), + put(lsockets, LSockets1), + LSockets1; + LSockets1 -> + LSockets1 + end, Procs = [begin LSocketId = (AcceptorId rem NumListenSockets) + 1, {_, LSocket} = lists:keyfind(LSocketId, 1, LSockets), -- cgit v1.2.3