diff options
author | Dan Gudmundsson <[email protected]> | 2017-11-20 15:23:24 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2017-12-01 15:24:02 +0100 |
commit | d4341cd249d728174fce580bd018e1e8b402d161 (patch) | |
tree | da490e0cd419bf3413f4d55992e659e23ecbb6e7 /lib/kernel/src/kernel.erl | |
parent | a90b3712dcec20c96eeeecbabc2672ec67c7d89a (diff) | |
download | otp-d4341cd249d728174fce580bd018e1e8b402d161.tar.gz otp-d4341cd249d728174fce580bd018e1e8b402d161.tar.bz2 otp-d4341cd249d728174fce580bd018e1e8b402d161.zip |
kernel: add a resource reference counter
System resources/functionality may need to be reference counted
to be handled correctly when used or enabled/disabled from more
than one process or application.
It is easier to handle this in erlang code than in erts, so make a
process that deals with the housekeeping.
Diffstat (limited to 'lib/kernel/src/kernel.erl')
-rw-r--r-- | lib/kernel/src/kernel.erl | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/kernel/src/kernel.erl b/lib/kernel/src/kernel.erl index cba57088ec..0382764b39 100644 --- a/lib/kernel/src/kernel.erl +++ b/lib/kernel/src/kernel.erl @@ -111,6 +111,13 @@ init([]) -> type => worker, modules => [kernel_config]}, + RefC = #{id => kernel_refc, + start => {kernel_refc, start_link, []}, + restart => permanent, + shutdown => 2000, + type => worker, + modules => [kernel_refc]}, + Code = #{id => code_server, start => {code, start_link, []}, restart => permanent, @@ -148,7 +155,7 @@ init([]) -> case init:get_argument(mode) of {ok, [["minimal"]]} -> - {ok, {SupFlags, [Code, File, StdError, User, Config, SafeSup]}}; + {ok, {SupFlags, [Code, File, StdError, User, Config, RefC, SafeSup]}}; _ -> Rpc = #{id => rex, start => {rpc, start_link, []}, @@ -199,7 +206,7 @@ init([]) -> {ok, {SupFlags, [Code, Rpc, Global, InetDb | DistAC] ++ [NetSup, GlGroup, File, SigSrv, - StdError, User, Config, SafeSup] ++ Timer}} + StdError, User, Config, RefC, SafeSup] ++ Timer}} end; init(safe) -> SupFlags = #{strategy => one_for_one, |