diff options
author | Björn-Egil Dahlberg <[email protected]> | 2015-04-13 18:47:06 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2017-01-19 14:24:42 +0100 |
commit | a7b52ad679e6a58a9351a26e198eee70067b000f (patch) | |
tree | 50e5ee9a86da4a951b488a3dfcc10397dfb37945 /lib/kernel/src/kernel.erl | |
parent | c9060f9b4289bf9a669ac651a1a7aeb97a28652c (diff) | |
download | otp-a7b52ad679e6a58a9351a26e198eee70067b000f.tar.gz otp-a7b52ad679e6a58a9351a26e198eee70067b000f.tar.bz2 otp-a7b52ad679e6a58a9351a26e198eee70067b000f.zip |
kernel: Add gen_event signal server and default handler
Diffstat (limited to 'lib/kernel/src/kernel.erl')
-rw-r--r-- | lib/kernel/src/kernel.erl | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/kernel/src/kernel.erl b/lib/kernel/src/kernel.erl index 3d0ef81318..59eca242b1 100644 --- a/lib/kernel/src/kernel.erl +++ b/lib/kernel/src/kernel.erl @@ -32,6 +32,14 @@ start(_, []) -> case supervisor:start_link({local, kernel_sup}, kernel, []) of {ok, Pid} -> + %% add signal handler + case whereis(erl_signal_server) of + %% in case of minimal mode + undefined -> ok; + _ -> + ok = gen_event:add_handler(erl_signal_server, erl_signal_handler, []) + end, + %% add error handler Type = get_error_logger_type(), case error_logger:swap_handler(Type) of ok -> {ok, Pid, []}; @@ -131,6 +139,9 @@ init([]) -> permanent, 2000, worker, [inet_db]}, NetSup = {net_sup, {erl_distribution, start_link, []}, permanent, infinity, supervisor,[erl_distribution]}, + SigSrv = #{id => erl_signal_server, + start => {gen_event, start_link, [{local, erl_signal_server}]}, + type => worker, restart => permanent, shutdown => 2000, modules => dynamic}, DistAC = start_dist_ac(), Timer = start_timer(), @@ -141,7 +152,7 @@ init([]) -> permanent, infinity, supervisor, [?MODULE]}, {ok, {SupFlags, [Code, Rpc, Global, InetDb | DistAC] ++ - [NetSup, Glo_grp, File, + [NetSup, Glo_grp, File, SigSrv, StdError, User, Config, SafeSupervisor] ++ Timer}} end; init(safe) -> |