summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2012-10-16 15:14:57 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2012-10-16 15:14:57 +0100
commit7d1aa1dde7bb937bbecdcca71870fc7c90a9caff (patch)
tree957685fd27a729e6608a952c05c8b14df8cdc49d
parenteafb1ed71140fdbdca24ad800d1d8914c6ebdad8 (diff)
parent31e6d4997fb9784023e74f627ad0710259979995 (diff)
downloadrabbitmq-server-7d1aa1dde7bb937bbecdcca71870fc7c90a9caff.tar.gz
merge heads
-rw-r--r--src/rabbit_mirror_queue_slave.erl12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index 8ca8b4f1..f72ed03d 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -179,18 +179,20 @@ handle_call({gm_deaths, Deaths}, From,
gen_server2:reply(From, ok),
{stop, normal, State};
{ok, Pid, DeadPids} ->
- rabbit_mirror_queue_misc:report_deaths(self(), false, QName,
+ Self = self(),
+ rabbit_mirror_queue_misc:report_deaths(Self, false, QName,
DeadPids),
- if node(Pid) =:= node(MPid) ->
+ case Pid of
+ MPid ->
%% master hasn't changed
gen_server2:reply(From, ok),
noreply(State);
- node(Pid) =:= node() ->
+ Self ->
%% we've become master
QueueState = promote_me(From, State),
{become, rabbit_amqqueue_process, QueueState, hibernate};
- true ->
- %% master has changed to not us.
+ _ ->
+ %% master has changed to not us
gen_server2:reply(From, ok),
erlang:monitor(process, Pid),
noreply(State #state { q = Q #amqqueue { pid = Pid } })