summaryrefslogtreecommitdiff
path: root/lib/kernel/src/net_kernel.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/src/net_kernel.erl')
-rw-r--r--lib/kernel/src/net_kernel.erl14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl
index 0628e35bcd..cc1856b771 100644
--- a/lib/kernel/src/net_kernel.erl
+++ b/lib/kernel/src/net_kernel.erl
@@ -193,10 +193,6 @@ nodename() -> request(nodename).
-spec stop() -> ok | {error, Reason} when
Reason :: not_allowed | not_found.
stop() ->
- case persistent_term:get(net_kernel, undefined) of
- undefined -> ok;
- _ -> persistent_term:erase(net_kernel)
- end,
erl_distribution:stop().
-type node_info() ::
@@ -729,6 +725,16 @@ code_change(_OldVsn, State, _Extra) ->
%% ------------------------------------------------------------
terminate(Reason, State) ->
+ case State of
+ #state{supervisor = {restart, _}} ->
+ ok;
+ _ ->
+ case persistent_term:get(net_kernel, undefined) of
+ undefined -> ok;
+ _ -> persistent_term:erase(net_kernel)
+ end
+ end,
+
case Reason of
no_network ->
ok;