diff --git a/src/gen_call.erl b/src/gen_call.erl index 04f48ac..3de9019 100644 --- a/src/gen_call.erl +++ b/src/gen_call.erl @@ -41,7 +41,12 @@ do_call(Process, Label, Request, Timeout) -> %% Local without timeout; no need to use alias since we unconditionally %% will wait for either a reply or a down message which corresponds to %% the process being terminated (as opposed to 'noconnection')... - Process ! {Label, {self(), Mref}, Request}, + case self() of + Process -> + exit(calling_self); + _ -> + Process ! {Label, {self(), Mref}, Request}, + end, receive {Mref, Reply} -> erlang:demonitor(Mref, [flush]),