aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2016-08-12 11:42:58 +0200
committerLukas Larsson <[email protected]>2016-08-12 11:42:58 +0200
commit6c41e0910b2ccb12c7a431f4398a7d0213b5b02e (patch)
treea236fd9fb3ab5967ff30f4f99bcaf56bc3c27cc6 /erts
parentdaa0f831aee9dedf8cdf29fd5f97f98f55e072e3 (diff)
parent53a487cd5019e7f7e3abee6b4a5e2d0b05aa34c6 (diff)
downloadotp-6c41e0910b2ccb12c7a431f4398a7d0213b5b02e.tar.gz
otp-6c41e0910b2ccb12c7a431f4398a7d0213b5b02e.tar.bz2
otp-6c41e0910b2ccb12c7a431f4398a7d0213b5b02e.zip
Merge branch 'lukas/erts/fix_init_stop_code_load_race/OTP-13802' into maint
* lukas/erts/fix_init_stop_code_load_race/OTP-13802: erts/kernel: Fix code loading deadlock during init:stop
Diffstat (limited to 'erts')
-rw-r--r--erts/preloaded/ebin/init.beambin50048 -> 50036 bytes
-rw-r--r--erts/preloaded/src/init.erl5
2 files changed, 2 insertions, 3 deletions
diff --git a/erts/preloaded/ebin/init.beam b/erts/preloaded/ebin/init.beam
index b856bff4fe..f0344fd6ba 100644
--- a/erts/preloaded/ebin/init.beam
+++ b/erts/preloaded/ebin/init.beam
Binary files differ
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 ->