diff options
author | Loïc Hoguin <[email protected]> | 2012-12-24 16:16:00 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2012-12-24 16:16:00 +0100 |
commit | 201a0cb5e421e24ffcce0d6315b2190d103bcb06 (patch) | |
tree | 796f28b22ab6b2315717ede3eb391f2a71c6cfe1 | |
parent | 9993923c40b96ab07752ec36692dc09c4c7648e9 (diff) | |
download | ranch-201a0cb5e421e24ffcce0d6315b2190d103bcb06.tar.gz ranch-201a0cb5e421e24ffcce0d6315b2190d103bcb06.tar.bz2 ranch-201a0cb5e421e24ffcce0d6315b2190d103bcb06.zip |
Improve max_connections type
It is non_neg_integer() | infinity. Introduce the type
`ranch:max_conns/0` for easier manipulation.
-rw-r--r-- | src/ranch.erl | 7 | ||||
-rw-r--r-- | src/ranch_acceptor.erl | 6 | ||||
-rw-r--r-- | src/ranch_listener.erl | 6 |
3 files changed, 11 insertions, 8 deletions
diff --git a/src/ranch.erl b/src/ranch.erl index c582efa..752819e 100644 --- a/src/ranch.erl +++ b/src/ranch.erl @@ -28,6 +28,9 @@ -export([set_option_default/3]). -export([require/1]). +-type max_conns() :: non_neg_integer() | infinity. +-export_type([max_conns/0]). + %% @doc Start a listener for the given transport and protocol. %% %% A listener is effectively a pool of <em>NbAcceptors</em> acceptors. @@ -124,14 +127,14 @@ get_port(Ref) -> Port. %% @doc Return the max number of connections allowed concurrently. --spec get_max_connections(any()) -> non_neg_integer(). +-spec get_max_connections(any()) -> max_conns(). get_max_connections(Ref) -> ListenerPid = ranch_server:lookup_listener(Ref), {ok, MaxConnections} = ranch_listener:get_max_connections(ListenerPid), MaxConnections. %% @doc Set the max number of connections allowed concurrently. --spec set_max_connections(any(), non_neg_integer()) -> ok. +-spec set_max_connections(any(), max_conns()) -> ok. set_max_connections(Ref, MaxConnections) -> ListenerPid = ranch_server:lookup_listener(Ref), ok = ranch_listener:set_max_connections(ListenerPid, MaxConnections). diff --git a/src/ranch_acceptor.erl b/src/ranch_acceptor.erl index 1985826..aef98d7 100644 --- a/src/ranch_acceptor.erl +++ b/src/ranch_acceptor.erl @@ -43,7 +43,7 @@ init(LSocket, Transport, Protocol, MaxConns, Opts, ListenerPid, ConnsSup) -> loop(LSocket, Transport, Protocol, MaxConns, Opts, ListenerPid, ConnsSup). -spec loop(inet:socket(), module(), module(), - non_neg_integer(), any(), pid(), pid()) -> no_return(). + ranch:max_conns(), any(), pid(), pid()) -> no_return(). loop(LSocket, Transport, Protocol, MaxConns, Opts, ListenerPid, ConnsSup) -> receive %% We couldn't accept the socket but it's safe to continue. @@ -70,8 +70,8 @@ loop(LSocket, Transport, Protocol, MaxConns, Opts, ListenerPid, ConnsSup) -> MaxConns, Opts2, ListenerPid, ConnsSup) end. --spec maybe_wait(pid(), non_neg_integer(), non_neg_integer()) - -> {ok, non_neg_integer()}. +-spec maybe_wait(pid(), MaxConns, non_neg_integer()) + -> {ok, MaxConns} when MaxConns::ranch:max_conns(). maybe_wait(_, MaxConns, NbConns) when MaxConns > NbConns -> {ok, MaxConns}; maybe_wait(ListenerPid, MaxConns, NbConns) -> diff --git a/src/ranch_listener.erl b/src/ranch_listener.erl index 873d860..81943d4 100644 --- a/src/ranch_listener.erl +++ b/src/ranch_listener.erl @@ -38,7 +38,7 @@ -record(state, { ref :: any(), - max_conns = undefined :: non_neg_integer(), + max_conns = undefined :: ranch:max_conns(), port = undefined :: undefined | inet:port_number(), proto_opts = undefined :: any(), rm_diff = 0 :: non_neg_integer() @@ -83,12 +83,12 @@ set_port(ServerPid, Port) -> gen_server:cast(ServerPid, {set_port, Port}). %% @doc Return the max number of connections allowed concurrently. --spec get_max_connections(pid()) -> {ok, non_neg_integer()}. +-spec get_max_connections(pid()) -> {ok, ranch:max_conns()}. get_max_connections(ServerPid) -> gen_server:call(ServerPid, get_max_connections). %% @doc Set the max number of connections allowed concurrently. --spec set_max_connections(pid(), non_neg_integer()) -> ok. +-spec set_max_connections(pid(), ranch:max_conns()) -> ok. set_max_connections(ServerPid, MaxConnections) -> gen_server:call(ServerPid, {set_max_connections, MaxConnections}). |