diff options
| author | Simon MacMullen <simon@lshift.net> | 2010-04-12 13:41:01 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@lshift.net> | 2010-04-12 13:41:01 +0100 |
| commit | 81295777b2e867ac321be609965abbd92b035897 (patch) | |
| tree | 595419dc63ec150ad575698909789e8ac0333ca6 /src | |
| parent | b28110d7200286b92e17ad4bb1d728aa9c89215a (diff) | |
| download | rabbitmq-server-git-81295777b2e867ac321be609965abbd92b035897.tar.gz | |
Remove upmap that was causing tests to fail, remove "optimisation" as it's not doing the optimisation we wanted.
Diffstat (limited to 'src')
| -rw-r--r-- | src/delegate.erl | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/delegate.erl b/src/delegate.erl index 9807542856..a8d4ab31e6 100644 --- a/src/delegate.erl +++ b/src/delegate.erl @@ -52,12 +52,12 @@ start_link(Hash) -> ?MODULE, [], []). delegate_gs2_call(Pid, Msg, Timeout) -> - {Status, Res} = + {_Status, Res} = delegate_call(Pid, fun(P) -> gen_server2:call(P, Msg, Timeout) end), Res. delegate_gs2_pcall(Pid, Pri, Msg, Timeout) -> - {Status, Res} = + {_Status, Res} = delegate_call(Pid, fun(P) -> gen_server2:pcall(P, Pri, Msg, Timeout) end), Res. @@ -69,6 +69,8 @@ delegate_gs2_pcast(Pid, Pri, Msg) -> delegate_cast(Pid, fun(P) -> gen_server2:pcast(P, Pri, Msg) end). +% TODO reimplement the single-node optimisation + delegate_call(Node, Thunk) when is_atom(Node) -> gen_server2:call({server(), Node}, {thunk, Thunk}, infinity); @@ -112,18 +114,9 @@ f_pid_node(DelegateFun, FPid) -> DelegateFun(Node, fun() -> FPid(Pid) end) end. -% TODO this only gets called when we are ONLY talking to the local node - can -% we improve this? -delegate_per_node([{Node, Pids}], FPidNode) when Node == node() -> - % optimisation - [[add_pid(FPidNode(Pid, Node), Pid) || Pid <- Pids]]; - delegate_per_node(NodePids, FPidNode) -> - rabbit_misc:upmap( - fun ({Node, Pids}) -> - [add_pid(FPidNode(Pid, Node), Pid) || Pid <- Pids] - end, - NodePids). + [[add_pid(FPidNode(Pid, Node), Pid) || Pid <- Pids] || + {Node, Pids} <- NodePids]. add_pid({Status, Result}, Pid) -> {Status, Result, Pid}; add_pid(Status, Pid) -> {Status, Pid}. |
