summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRickard Green <rickard@erlang.org>2021-10-06 13:04:45 +0200
committerGitHub <noreply@github.com>2021-10-06 13:04:45 +0200
commit41a8da458cbc86fce948d139f5e236427ccc3386 (patch)
tree5bc688013c9528b7a046a57f8cbfdf182d3c7734
parent8bc529a483abfe956ede2464ebe742683706a650 (diff)
parentdee2f1c92c5081a7d02e2abd217baf133acf3ef9 (diff)
downloaderlang-41a8da458cbc86fce948d139f5e236427ccc3386.tar.gz
Merge pull request #5198 from JeromeDeBretagne/jdb/kernel/net_ticker_spawn_options-in-erl_uds_dist
kernel: Support net_ticker_spawn_options in erl_uds_dist OTP-17678
-rw-r--r--lib/kernel/examples/erl_uds_dist/src/erl_uds_dist.erl17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/kernel/examples/erl_uds_dist/src/erl_uds_dist.erl b/lib/kernel/examples/erl_uds_dist/src/erl_uds_dist.erl
index 44035e8e42..af7a577b20 100644
--- a/lib/kernel/examples/erl_uds_dist/src/erl_uds_dist.erl
+++ b/lib/kernel/examples/erl_uds_dist/src/erl_uds_dist.erl
@@ -432,8 +432,7 @@ accept_loop(Kernel, ListeningSocket) ->
accept_connection(AcceptPid, DistCtrl, MyNode, Allowed, SetupTime) ->
spawn_opt(?MODULE, accept_supervisor,
[self(), AcceptPid, DistCtrl, MyNode, Allowed, SetupTime],
- %% Spawn on max priority
- [link, {priority, max}]).
+ net_ticker_spawn_options()).
accept_supervisor(Kernel, AcceptPid, DistCtrl, MyNode, Allowed, SetupTime) ->
?trace("~p~n", [{?MODULE, accept_connection, self()}]),
@@ -475,6 +474,17 @@ accept_supervisor(Kernel, AcceptPid, DistCtrl, MyNode, Allowed, SetupTime) ->
%% ---------------------------------------------------------------------
+%% Allow to set different spawn options for dist_util processes using
+%% the net_ticker_spawn_options configuration parameter. Default is
+%% [link, {priority, max}] and these two options cannot be changed.
+%% ---------------------------------------------------------------------
+net_ticker_spawn_options() ->
+ Opts = application:get_env(kernel, net_ticker_spawn_options, []),
+ Opts1 = [{priority, max} | proplists:delete(priority, Opts)],
+ [link | proplists:delete(link, Opts1)].
+
+
+%% ---------------------------------------------------------------------
%% Define common values of the handshake data record, defined in
%% kernel/include/dist_util.hrl
%% ---------------------------------------------------------------------
@@ -666,8 +676,7 @@ getopts(ListeningSocket, Options) ->
setup(Node, Type, MyNode, _LongOrShortNames, SetupTime) ->
spawn_opt(?MODULE, setup_supervisor,
[self(), Node, Type, MyNode, SetupTime],
- %% Spawn on max priority
- [link, {priority, max}]).
+ net_ticker_spawn_options()).
setup_supervisor(Kernel, Node, Type, MyNode, SetupTime) ->
?trace("~p~n", [{?MODULE, setup, self(), Node}]),