From 56369d5c1a0a3141e9d136b2f8010ff0e96bb26c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 9 Aug 2011 18:07:57 +0200 Subject: Introduce cowboy_listener for managing a listener Currently only supports limiting the maximum number of connections by managing connection pools. --- src/cowboy_acceptors_sup.erl | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/cowboy_acceptors_sup.erl') 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}}. -- cgit v1.2.3