aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cowboy_listener.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cowboy_listener.erl b/src/cowboy_listener.erl
index 8b656ba..c19d079 100644
--- a/src/cowboy_listener.erl
+++ b/src/cowboy_listener.erl
@@ -30,9 +30,15 @@
%% API.
%% @private
+%%
+%% We set the process priority to high because cowboy_listener is the central
+%% gen_server in Cowboy and is used to manage all the incoming connections.
+%% Setting the process priority to high ensures the connection-related code
+%% will always be executed when a connection needs it, allowing Cowboy to
+%% scale far beyond what it would with a normal priority.
-spec start_link() -> {ok, pid()}.
start_link() ->
- gen_server:start_link(?MODULE, [], []).
+ gen_server:start_link(?MODULE, [], [{spawn_opt, [{priority, high}]}]).
%% @private
-spec stop(pid()) -> stopped.