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 | 723774ec48a0d6643dc33e65782a9da9f386b743 (patch) | |
| tree | 957685fd27a729e6608a952c05c8b14df8cdc49d /src | |
| parent | 527f4e295dc00f5e869ccb649247f762a177fe18 (diff) | |
| parent | 1e44da5f708f5c1be16adcb1398f123516a864d5 (diff) | |
| download | rabbitmq-server-git-723774ec48a0d6643dc33e65782a9da9f386b743.tar.gz | |
merge heads
Diffstat (limited to 'src')
| -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 8ca8b4f114..f72ed03df3 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 } }) |
