aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_acceptors_sup.erl
AgeCommit message (Collapse)Author
2012-01-30Move max_connections check directly inside cowboy_listenerLoïc Hoguin
This is a big change in the internal cowboy API. This should not have any impact on existing applications as only the acceptor is expected to use these API calls. The function cowboy_listener:wait/3 has been removed. max_connections checking now occurs directly in cowboy_listener:add_connection/3. If the pool is full and the acceptor has to wait, then it doesn't return, waiting for a free space to be available. To accomodate these changes, it is now cowboy_listener that will inform the new connection that it is ready by sending {shoot, self()}. This should be a great improvement to the latency of responses as there is one less message to wait for before the request process can do its work. Overall the performance under heavy load should also be improved as we greatly reduce the number of messages sent between the acceptor and the listener process.
2011-10-28fix supervisor spec for non dynamic modulesSteven Gravell
a release upgrade on a vm running cowboy where any other appup includes an {update, Mod, {advanced, Extra}} instruction will hang forever due to these child specs being wrong. The gen_servers should be [Mod] and the non gen_server needs to be [] since there is no callback to handle this.
2011-08-10Introduce cowboy_listener for managing a listenerLoïc Hoguin
Currently only supports limiting the maximum number of connections by managing connection pools.
2011-07-06Add documentation for the public interface.Loïc Hoguin
This is probably not perfect yet but it should be better than nothing. We'll improve things with feedback received from the many users.
2011-05-25Refresh the type specifications.Loïc Hoguin
Following discussions on #erlounge. Also fixes compilation in R14B03 and fixes a few underspecs dialyzer warnings.
2011-05-09Add a max_connections transport option.Loïc Hoguin
Limits the number of parallel requests processed at once. Waiting requests are kept in the accept queue. The limit is not explicitly observed, but it should be around the given value at any time. Defaults to 1024. Thanks to ostinelli's benchmark to point out the issue hopefully solved by this and the previous commit.
2011-04-18Remove the include/types.hrl file.Loïc Hoguin
2011-04-03Ensure the listening socket gets closed with the listener supervisor.Loïc Hoguin
Moved the Transport:listen call to cowboy_acceptors_sup. This make it depend on a child of cowboy_listener_sup instead of cowboy_sup, which isn't getting shut down when calling cowboy:stop_listener/1 and thus didn't close the listening socket.
2011-04-02Anonymize and improve the cowboy supervision tree.Loïc Hoguin
* Cowboy isn't an OTP application anymore; just a supervisor. * All processes started by Cowboy are now anonymous. * All processes related to a listener are now part of its supervision tree.