diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-16 15:14:57 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-16 15:14:57 +0100 |
commit | 7d1aa1dde7bb937bbecdcca71870fc7c90a9caff (patch) | |
tree | 957685fd27a729e6608a952c05c8b14df8cdc49d | |
parent | eafb1ed71140fdbdca24ad800d1d8914c6ebdad8 (diff) | |
parent | 31e6d4997fb9784023e74f627ad0710259979995 (diff) | |
download | rabbitmq-server-7d1aa1dde7bb937bbecdcca71870fc7c90a9caff.tar.gz |
merge heads
-rw-r--r-- | src/rabbit_mirror_queue_slave.erl | 12 |
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 } }) |