diff options
author | Lukas Larsson <[email protected]> | 2016-08-12 11:43:07 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2016-08-12 11:43:07 +0200 |
commit | 2ad936f4e0b123aef8f2f89a97a383fce62cd4b3 (patch) | |
tree | 36e9571fc90edb8b15118ae56e1272d6cd66226d | |
parent | 9cd8c5319a9ffd71fc5f8db755b4014f199fc0f2 (diff) | |
parent | 6c41e0910b2ccb12c7a431f4398a7d0213b5b02e (diff) | |
download | otp-2ad936f4e0b123aef8f2f89a97a383fce62cd4b3.tar.gz otp-2ad936f4e0b123aef8f2f89a97a383fce62cd4b3.tar.bz2 otp-2ad936f4e0b123aef8f2f89a97a383fce62cd4b3.zip |
Merge branch 'maint'
-rw-r--r-- | erts/preloaded/ebin/init.beam | bin | 50048 -> 50036 bytes | |||
-rw-r--r-- | erts/preloaded/src/init.erl | 5 | ||||
-rw-r--r-- | lib/kernel/src/code_server.erl | 6 |
3 files changed, 7 insertions, 4 deletions
diff --git a/erts/preloaded/ebin/init.beam b/erts/preloaded/ebin/init.beam Binary files differindex b856bff4fe..f0344fd6ba 100644 --- a/erts/preloaded/ebin/init.beam +++ b/erts/preloaded/ebin/init.beam diff --git a/erts/preloaded/src/init.erl b/erts/preloaded/src/init.erl index 45468b3b9c..67929c53c2 100644 --- a/erts/preloaded/src/init.erl +++ b/erts/preloaded/src/init.erl @@ -423,9 +423,6 @@ loop(State) -> Loaded = State#state.loaded, %% boot_loop but is handled here From ! {init,Loaded}, %% anyway. loop(State); - {From, {ensure_loaded, _}} -> - From ! {init, not_allowed}, - loop(State); Msg -> loop(handle_msg(Msg,State)) end. @@ -465,6 +462,8 @@ do_handle_msg(Msg,State) -> From ! {init,ok}, {new_state,State#state{subscribed = [Pid|Subscribed]}} end; + {From, {ensure_loaded, _}} -> + From ! {init, not_allowed}; X -> case whereis(user) of undefined -> diff --git a/lib/kernel/src/code_server.erl b/lib/kernel/src/code_server.erl index 1792f9e908..48541ec500 100644 --- a/lib/kernel/src/code_server.erl +++ b/lib/kernel/src/code_server.erl @@ -135,10 +135,14 @@ split_paths([], _S, Path, Paths) -> -spec call(term()) -> term(). call(Req) -> + Ref = erlang:monitor(process, ?MODULE), ?MODULE ! {code_call, self(), Req}, receive {?MODULE, Reply} -> - Reply + erlang:demonitor(Ref,[flush]), + Reply; + {'DOWN',Ref,process,_,_} -> + exit({'DOWN',code_server,Req}) end. reply(Pid, Res) -> |