summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2012-09-04 18:13:46 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2012-09-04 18:13:46 +0100
commit6fa5c41837a8c0ac52f0db24458c7fc26a2ff7f7 (patch)
tree1e52fb4ee343200db0a9d74fba26c7770edc8161 /src
parenta9a1448695c35d490e3f92cafb1f7299d096c13d (diff)
downloadrabbitmq-server-git-6fa5c41837a8c0ac52f0db24458c7fc26a2ff7f7.tar.gz
more reification, plus cosmetics
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_mirror_queue_slave.erl31
1 files changed, 13 insertions, 18 deletions
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index 792adc9542..61bd54b9d7 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -153,28 +153,23 @@ init_it(Self, Node, QueueName) ->
[Q1 = #amqqueue { pid = QPid, slave_pids = MPids }] =
mnesia:read({rabbit_queue, QueueName}),
case [Pid || Pid <- [QPid | MPids], node(Pid) =:= Node] of
- [] ->
- rabbit_mirror_queue_misc:store_updated_slaves(
- Q1#amqqueue{slave_pids = add_slave(Self, MPids)}),
- {new, QPid};
- [QPid] ->
- case rabbit_misc:is_process_alive(QPid) of
- true -> duplicate_live_master;
- false -> {stale, QPid}
- end;
- [SPid] ->
- case rabbit_misc:is_process_alive(SPid) of
- true -> existing;
- false -> MPids1 = add_slave(Self, MPids -- [SPid]),
- rabbit_mirror_queue_misc:store_updated_slaves(
- Q1#amqqueue{slave_pids = MPids1}),
- {new, QPid}
- end
+ [] -> add_slave(Q1, Self, MPids),
+ {new, QPid};
+ [QPid] -> case rabbit_misc:is_process_alive(QPid) of
+ true -> duplicate_live_master;
+ false -> {stale, QPid}
+ end;
+ [SPid] -> case rabbit_misc:is_process_alive(SPid) of
+ true -> existing;
+ false -> add_slave(Q1, Self, MPids -- [SPid]),
+ {new, QPid}
+ end
end.
%% Add to the end, so they are in descending order of age, see
%% rabbit_mirror_queue_misc:promote_slave/1
-add_slave(New, MPids) -> MPids ++ [New].
+add_slave(Q, New, MPids) -> rabbit_mirror_queue_misc:store_updated_slaves(
+ Q#amqqueue{slave_pids = MPids ++ [New]}).
handle_call({deliver, Delivery = #delivery { immediate = true }},
From, State) ->