aboutsummaryrefslogtreecommitdiffstats
path: root/src/ranch_listener_sup.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2012-08-06 13:39:28 +0200
committerLoïc Hoguin <[email protected]>2012-08-06 13:39:28 +0200
commit6b354c1124035c54b6648665aafbe7197b34bd0e (patch)
treed31bdd1e0e6cffe8f31e50b40516e63201c6046d /src/ranch_listener_sup.erl
parent7d52280c2e3fcc9e1b89435c98ef96d4758aed7a (diff)
downloadranch-6b354c1124035c54b6648665aafbe7197b34bd0e.tar.gz
ranch-6b354c1124035c54b6648665aafbe7197b34bd0e.tar.bz2
ranch-6b354c1124035c54b6648665aafbe7197b34bd0e.zip
Make accept asynchronous
Ranch now accepts connection asynchronously through a separate process. The accept process is linked to the acceptor, calls accept and does nothing else but send the socket back to the acceptor. This allows us to receive messages in the acceptor to handle upgrades instead of polling. This will also allow us later to make acceptors system processes. Remove support for connection pools in favor of a simpler max_connections setting. Connections can be removed from the count, allowing us to have as many long-lived connections as we want while still limiting the number of short-lived ones. Add max_connections, max_connections with long-lived connections, and upgrade tests.
Diffstat (limited to 'src/ranch_listener_sup.erl')
-rw-r--r--src/ranch_listener_sup.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/ranch_listener_sup.erl b/src/ranch_listener_sup.erl
index de35758..c8ba12d 100644
--- a/src/ranch_listener_sup.erl
+++ b/src/ranch_listener_sup.erl
@@ -30,7 +30,8 @@ start_link(Ref, NbAcceptors, Transport, TransOpts, Protocol, ProtoOpts) ->
MaxConns = proplists:get_value(max_connections, TransOpts, 1024),
{ok, SupPid} = supervisor:start_link(?MODULE, []),
{ok, ListenerPid} = supervisor:start_child(SupPid,
- {ranch_listener, {ranch_listener, start_link, [MaxConns, ProtoOpts]},
+ {ranch_listener, {ranch_listener, start_link,
+ [Ref, MaxConns, ProtoOpts]},
permanent, 5000, worker, [ranch_listener]}),
ok = ranch_server:insert_listener(Ref, ListenerPid),
{ok, ConnsPid} = supervisor:start_child(SupPid,