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 | 1bc29585c63c95708a7bc11fdb9a4b0ee3f3387d (patch) | |
tree | 595419dc63ec150ad575698909789e8ac0333ca6 /src/delegate.erl | |
parent | b77ef427b978d2a1ccb78f619bab0e8176edef78 (diff) | |
download | rabbitmq-server-1bc29585c63c95708a7bc11fdb9a4b0ee3f3387d.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/delegate.erl')
-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 98075428..a8d4ab31 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}. |