diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2013-06-26 12:59:33 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2013-06-26 12:59:33 +0100 |
| commit | 06a8b1ffcf633ba10c177736db33775636c9a20c (patch) | |
| tree | 42b83a1cdac95687b1b6e0d0f168738015922a20 /src/delegate.erl | |
| parent | 9f586c509a82b9999034634a30d94f1315967776 (diff) | |
| download | rabbitmq-server-git-06a8b1ffcf633ba10c177736db33775636c9a20c.tar.gz | |
Do the monitoring on the correct node(!) and remove all that nonsense about node-wide monitoring.
Diffstat (limited to 'src/delegate.erl')
| -rw-r--r-- | src/delegate.erl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/delegate.erl b/src/delegate.erl index a205f2f157..475b087f47 100644 --- a/src/delegate.erl +++ b/src/delegate.erl @@ -119,15 +119,19 @@ invoke_no_result(Pids, Fun) when is_list(Pids) -> safe_invoke(LocalPids, Fun), %% must not die ok. +monitor(Pid) when node(Pid) =:= node() -> + erlang:monitor(process, Pid); monitor(Pid) -> Node = node(Pid), Name = delegate(Pid, [Node]), - gen_server2:call({Name, Node}, {monitor, self(), Pid}, infinity). + gen_server2:call(Name, {monitor, self(), Pid}, infinity). +demonitor(Pid, Ref) when node(Pid) =:= node() -> + erlang:demonitor(Ref, [flush]); demonitor(Pid, Ref) -> Node = node(Pid), Name = delegate(Pid, [Node]), - gen_server2:call({Name, Node}, {demonitor, Ref}, infinity). + gen_server2:call(Name, {demonitor, Ref}, infinity). call(PidOrPids, Msg) -> invoke(PidOrPids, fun (P) -> gen_server2:call(P, Msg, infinity) end). |
