diff options
author | Raimo Niskanen <raimo@erlang.org> | 2023-02-08 11:08:04 +0100 |
---|---|---|
committer | Raimo Niskanen <raimo@erlang.org> | 2023-02-08 11:50:52 +0100 |
commit | 1b566deb447e7db795df1ce1941cd9fd38bd2e49 (patch) | |
tree | ef35429a68701d559fe496149941c999e204af16 | |
parent | 04ac77ff857a6560bfaabbd6122881782f9dc084 (diff) | |
download | erlang-1b566deb447e7db795df1ce1941cd9fd38bd2e49.tar.gz |
Remove run_on_load_handlers/1
-rw-r--r-- | erts/preloaded/src/init.erl | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/erts/preloaded/src/init.erl b/erts/preloaded/src/init.erl index 9709db3450..45b9407508 100644 --- a/erts/preloaded/src/init.erl +++ b/erts/preloaded/src/init.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2022. All Rights Reserved. +%% Copyright Ericsson AB 1996-2023. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -53,7 +53,7 @@ get_argument/1,script_id/0,script_name/0]). %% for the on_load functionality; not for general use --export([run_on_load_handlers/0, run_on_load_handlers/1]). +-export([run_on_load_handlers/0]). %% internal exports -export([fetch_loaded/0,ensure_loaded/1,make_permanent/2, @@ -1502,11 +1502,8 @@ archive_extension() -> %%% run_on_load_handlers() -> - run_on_load_handlers(all). - -run_on_load_handlers(Mods) when is_list(Mods); Mods =:= all -> Ref = monitor(process, ?ON_LOAD_HANDLER), - catch ?ON_LOAD_HANDLER ! {run_on_load, self(), Ref, Mods}, + _ = catch ?ON_LOAD_HANDLER ! {run_on_load, Ref}, receive {'DOWN',Ref,process,_,noproc} -> %% There is no on_load handler process, @@ -1514,14 +1511,13 @@ run_on_load_handlers(Mods) when is_list(Mods); Mods =:= all -> %% called and it is not the first time we %% pass through here. ok; - {'DOWN',Ref,process,_,on_load_done} -> + {'DOWN',Ref,process,_,Ref} -> + %% All on_load handlers have run succesfully ok; - {'DOWN',Ref,process,_,Res} -> + {'DOWN',Ref,process,_,Reason} -> %% Failure to run an on_load handler. %% This is fatal during start-up. - exit(Res); - {reply, Ref, on_load_done} -> - ok + exit(Reason) end. start_on_load_handler_process() -> @@ -1537,14 +1533,9 @@ on_load_loop(Mods, Debug0) -> on_load_loop(Mods, Debug); {loaded,Mod} -> on_load_loop([Mod|Mods], Debug0); - {run_on_load, _, _, all} -> + {run_on_load, Ref} -> run_on_load_handlers(Mods, Debug0), - exit(on_load_done); - {run_on_load, From, Ref, ModsToRun} -> - [run_on_load_handlers([Mod], Debug0) - || Mod <- ModsToRun, lists:member(Mod, Mods)], - From ! {reply, Ref, on_load_done}, - on_load_loop(Mods -- ModsToRun, Debug0) + exit(Ref) end. run_on_load_handlers([M|Ms], Debug) -> |