aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2013-04-02 18:59:01 +0200
committerLoïc Hoguin <[email protected]>2013-04-02 18:59:01 +0200
commit18b546fb020eba9765ed30deff9e0de730e394d0 (patch)
tree05dca0302439f75f4fc403997c4299b7b3a3547f /src
parent405a487949ca74aa5d910e1f5d6c4573bcc229d6 (diff)
parenta700368b2cb021bb1cd007697db4a3bae0099f2d (diff)
downloadranch-18b546fb020eba9765ed30deff9e0de730e394d0.tar.gz
ranch-18b546fb020eba9765ed30deff9e0de730e394d0.tar.bz2
ranch-18b546fb020eba9765ed30deff9e0de730e394d0.zip
Merge branch 'fix-server-racecon' of git://github.com/fishcakez/ranch
Diffstat (limited to 'src')
-rw-r--r--src/ranch_server.erl15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/ranch_server.erl b/src/ranch_server.erl
index 7557d53..200e29c 100644
--- a/src/ranch_server.erl
+++ b/src/ranch_server.erl
@@ -68,7 +68,8 @@ cleanup_listener_opts(Ref) ->
%% @doc Set a connection supervisor associated with specific listener.
-spec set_connections_sup(any(), pid()) -> ok.
set_connections_sup(Ref, Pid) ->
- gen_server:call(?MODULE, {set_connections_sup, Ref, Pid}).
+ true = gen_server:call(?MODULE, {set_connections_sup, Ref, Pid}),
+ ok.
%% @doc Return the connection supervisor used by specific listener.
-spec get_connections_sup(any()) -> pid().
@@ -125,10 +126,14 @@ handle_call({set_new_listener_opts, Ref, MaxConns, Opts}, _, State) ->
{reply, ok, State};
handle_call({set_connections_sup, Ref, Pid}, _,
State=#state{monitors=Monitors}) ->
- true = ets:insert_new(?TAB, {{conns_sup, Ref}, Pid}),
- MonitorRef = erlang:monitor(process, Pid),
- {reply, ok, State#state{
- monitors=[{{MonitorRef, Pid}, Ref}|Monitors]}};
+ case ets:insert_new(?TAB, {{conns_sup, Ref}, Pid}) of
+ true ->
+ MonitorRef = erlang:monitor(process, Pid),
+ {reply, true,
+ State#state{monitors=[{{MonitorRef, Pid}, Ref}|Monitors]}};
+ false ->
+ {reply, false, State}
+ end;
handle_call({set_port, Ref, Port}, _, State) ->
true = ets:insert(?TAB, {{port, Ref}, Port}),
{reply, ok, State};