diff options
author | Hans Bolinder <hasse@erlang.org> | 2010-06-08 14:58:14 +0000 |
---|---|---|
committer | Erlang/OTP <otp@erlang.org> | 2010-06-08 14:58:14 +0000 |
commit | 12c4d172d373b743fcd4a61584ca2aaeb25cb926 (patch) | |
tree | d63bccc6676454e4e7aa7f0527f79b9eea7b04de | |
parent | 1db9890d2d52e37ea134545453319a748fd84e10 (diff) | |
download | otp-12c4d172d373b743fcd4a61584ca2aaeb25cb926.tar.gz otp-12c4d172d373b743fcd4a61584ca2aaeb25cb926.tar.bz2 otp-12c4d172d373b743fcd4a61584ca2aaeb25cb926.zip |
OTP-8686 Bugfix net_kernel
A bug introduced in kernel-2.13.5.3 has been fixed.
-rw-r--r-- | lib/kernel/src/net_kernel.erl | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl index 0e17c059e5..0e5cc8c2c6 100644 --- a/lib/kernel/src/net_kernel.erl +++ b/lib/kernel/src/net_kernel.erl @@ -1086,11 +1086,11 @@ do_spawn(SpawnFuncArgs, SpawnOpts, State) -> spawn_func(link,{From,Tag},M,F,A,Gleader) -> link(From), - async_gen_server_reply({From,Tag},self()), %% ahhh + gen_server:reply({From,Tag},self()), %% ahhh group_leader(Gleader,self()), apply(M,F,A); spawn_func(_,{From,Tag},M,F,A,Gleader) -> - async_gen_server_reply({From,Tag},self()), %% ahhh + gen_server:reply({From,Tag},self()), %% ahhh group_leader(Gleader,self()), apply(M,F,A). @@ -1527,10 +1527,12 @@ async_gen_server_reply(From, Msg) -> {Pid, Tag} = From, M = {Tag, Msg}, case catch erlang:send(Pid, M, [nosuspend, noconnect]) of - true -> - M; - false -> - spawn(fun() -> gen_server:reply(From, Msg) end); - EXIT -> + ok -> + ok; + nosuspend -> + spawn(fun() -> catch erlang:send(Pid, M, [noconnect]) end); + noconnect -> + ok; % The gen module takes care of this case. + {'EXIT', _}=EXIT -> EXIT end. |