aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_acceptor.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2011-08-10 20:28:30 +0200
committerLoïc Hoguin <[email protected]>2011-08-10 20:28:30 +0200
commit43d14b52cd07dfd1121bbe6727a96dfd32304e47 (patch)
tree5b8d451d0decec8e75cf70c24e5c3fb54f51a65c /src/cowboy_acceptor.erl
parent56369d5c1a0a3141e9d136b2f8010ff0e96bb26c (diff)
downloadcowboy-43d14b52cd07dfd1121bbe6727a96dfd32304e47.tar.gz
cowboy-43d14b52cd07dfd1121bbe6727a96dfd32304e47.tar.bz2
cowboy-43d14b52cd07dfd1121bbe6727a96dfd32304e47.zip
Give the ListenerPid to the protocol on startup
Also sends a message 'shoot' that can be received by the protocol to make sure Cowboy has had enough time to fully initialize the socket. This message should be received before any socket-related operations are performed. WebSocket request connections are now moved from the pool 'default' to the pool 'websocket', meaning we can have a lot of running WebSockets despite having a low 'max_connections' setting.
Diffstat (limited to 'src/cowboy_acceptor.erl')
-rw-r--r--src/cowboy_acceptor.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cowboy_acceptor.erl b/src/cowboy_acceptor.erl
index be63cef..f2b603e 100644
--- a/src/cowboy_acceptor.erl
+++ b/src/cowboy_acceptor.erl
@@ -36,10 +36,11 @@ acceptor(LSocket, Transport, Protocol, Opts, MaxConns, ListenerPid, ReqsSup) ->
case Transport:accept(LSocket, 2000) of
{ok, CSocket} ->
{ok, Pid} = supervisor:start_child(ReqsSup,
- [CSocket, Transport, Protocol, Opts]),
+ [ListenerPid, CSocket, Transport, Protocol, Opts]),
Transport:controlling_process(CSocket, Pid),
{ok, NbConns} = cowboy_listener:add_connection(ListenerPid,
default, Pid),
+ Pid ! shoot,
limit_reqs(ListenerPid, NbConns, MaxConns);
{error, timeout} ->
ignore;