aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2010-06-08 12:00:00 +0200
committerBjörn Gustavsson <[email protected]>2010-08-20 08:58:02 +0200
commit90e04f98a65a7f261ab9ba79917394b5d68bb650 (patch)
treef82cc563c0a3ab1bf2e7c32cd29293b6599d5901 /lib/kernel/src
parent61b1feed86ccf574613b913c5eea57d138eeb178 (diff)
downloadotp-90e04f98a65a7f261ab9ba79917394b5d68bb650.tar.gz
otp-90e04f98a65a7f261ab9ba79917394b5d68bb650.tar.bz2
otp-90e04f98a65a7f261ab9ba79917394b5d68bb650.zip
kernel: Patch 1124
OTP-8686 A bug introduced in kernel-2.13.5.3 has been fixed.
Diffstat (limited to 'lib/kernel/src')
-rw-r--r--lib/kernel/src/net_kernel.erl16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl
index 9078b6ee5c..1353ac65c6 100644
--- a/lib/kernel/src/net_kernel.erl
+++ b/lib/kernel/src/net_kernel.erl
@@ -1083,11 +1083,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).
@@ -1524,10 +1524,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.