aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_acceptors_sup.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2011-08-09 18:07:57 +0200
committerLoïc Hoguin <[email protected]>2011-08-10 16:43:59 +0200
commit56369d5c1a0a3141e9d136b2f8010ff0e96bb26c (patch)
treeb4387d0ad61a02348fcd7b64553bb048d6bebb47 /src/cowboy_acceptors_sup.erl
parent613890146539d08b52663b6e775b6f83492e29d4 (diff)
downloadcowboy-56369d5c1a0a3141e9d136b2f8010ff0e96bb26c.tar.gz
cowboy-56369d5c1a0a3141e9d136b2f8010ff0e96bb26c.tar.bz2
cowboy-56369d5c1a0a3141e9d136b2f8010ff0e96bb26c.zip
Introduce cowboy_listener for managing a listener
Currently only supports limiting the maximum number of connections by managing connection pools.
Diffstat (limited to 'src/cowboy_acceptors_sup.erl')
-rw-r--r--src/cowboy_acceptors_sup.erl19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/cowboy_acceptors_sup.erl b/src/cowboy_acceptors_sup.erl
index c12aeb5..3d57610 100644
--- a/src/cowboy_acceptors_sup.erl
+++ b/src/cowboy_acceptors_sup.erl
@@ -16,25 +16,28 @@
-module(cowboy_acceptors_sup).
-behaviour(supervisor).
--export([start_link/6]). %% API.
+-export([start_link/7]). %% API.
-export([init/1]). %% supervisor.
%% API.
--spec start_link(non_neg_integer(), module(), any(), module(), any(), pid())
- -> {ok, pid()}.
-start_link(NbAcceptors, Transport, TransOpts, Protocol, ProtoOpts, ReqsPid) ->
- supervisor:start_link(?MODULE, [NbAcceptors,
- Transport, TransOpts, Protocol, ProtoOpts, ReqsPid]).
+-spec start_link(non_neg_integer(), module(), any(),
+ module(), any(), pid(), pid()) -> {ok, pid()}.
+start_link(NbAcceptors, Transport, TransOpts,
+ Protocol, ProtoOpts, ListenerPid, ReqsPid) ->
+ supervisor:start_link(?MODULE, [NbAcceptors, Transport, TransOpts,
+ Protocol, ProtoOpts, ListenerPid, ReqsPid]).
%% supervisor.
-spec init(list()) -> {ok, {{one_for_one, 10, 10}, list()}}.
-init([NbAcceptors, Transport, TransOpts, Protocol, ProtoOpts, ReqsPid]) ->
+init([NbAcceptors, Transport, TransOpts,
+ Protocol, ProtoOpts, ListenerPid, ReqsPid]) ->
{ok, LSocket} = Transport:listen(TransOpts),
MaxConns = proplists:get_value(max_connections, TransOpts, 1024),
Procs = [{{acceptor, self(), N}, {cowboy_acceptor, start_link, [
- LSocket, Transport, Protocol, ProtoOpts, MaxConns, ReqsPid
+ LSocket, Transport, Protocol, ProtoOpts,
+ MaxConns, ListenerPid, ReqsPid
]}, permanent, brutal_kill, worker, dynamic}
|| N <- lists:seq(1, NbAcceptors)],
{ok, {{one_for_one, 10, 10}, Procs}}.