diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2012-09-04 18:13:46 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-09-04 18:13:46 +0100 |
| commit | 6fa5c41837a8c0ac52f0db24458c7fc26a2ff7f7 (patch) | |
| tree | 1e52fb4ee343200db0a9d74fba26c7770edc8161 /src | |
| parent | a9a1448695c35d490e3f92cafb1f7299d096c13d (diff) | |
| download | rabbitmq-server-git-6fa5c41837a8c0ac52f0db24458c7fc26a2ff7f7.tar.gz | |
more reification, plus cosmetics
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mirror_queue_slave.erl | 31 |
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) -> |
