diff options
| author | Matthias Radestock <matthias@lshift.net> | 2010-03-09 09:06:18 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2010-03-09 09:06:18 +0000 |
| commit | e61d28a8e857ff12b5b0ed079d35913029c613a0 (patch) | |
| tree | 8afd0b3565a1499427994078e50f41d468c9df22 /src | |
| parent | eae0845e8829aeadd8b65b776e0108081bde27f9 (diff) | |
| download | rabbitmq-server-git-e61d28a8e857ff12b5b0ed079d35913029c613a0.tar.gz | |
remove unneeded exports
and some minor refactoring
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue.erl | 58 |
1 files changed, 24 insertions, 34 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index e333a43b9d..9899354022 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -31,8 +31,7 @@ -module(rabbit_amqqueue). --export([start/0, recover/1, find_durable_queues/0, declare/4, delete/3, - purge/1]). +-export([start/0, declare/4, delete/3, purge/1]). -export([internal_declare/2, internal_delete/1, remeasure_rates/1, set_queue_duration/2, set_maximum_since_use/2]). -export([pseudo_queue/2]). @@ -70,8 +69,6 @@ -type(acktag() :: ('ack_not_on_disk' | {'ack_index_and_store', msg_id(), seq_id()})). -spec(start/0 :: () -> 'ok'). --spec(recover/1 :: ([amqqueue()]) -> {'ok', [amqqueue()]}). --spec(find_durable_queues/0 :: () -> [amqqueue()]). -spec(declare/4 :: (queue_name(), boolean(), boolean(), amqp_table()) -> amqqueue()). -spec(lookup/1 :: (queue_name()) -> {'ok', amqqueue()} | not_found()). @@ -139,38 +136,9 @@ start() -> {rabbit_amqqueue_sup, {rabbit_amqqueue_sup, start_link, []}, transient, infinity, supervisor, [rabbit_amqqueue_sup]}), - {ok, _RealDurableQueues} = recover(DurableQueues), + _RealDurableQueues = recover_durable_queues(DurableQueues), ok. -recover(DurableQueues) -> - {ok, _RealDurableQueues} = recover_durable_queues(DurableQueues). - -recover_durable_queues(DurableQueues) -> - RealDurableQueues = - lists:foldl( - fun (RecoveredQ, Acc) -> - Q = start_queue_process(RecoveredQ), - %% We need to catch the case where a client connected to - %% another node has deleted the queue (and possibly - %% re-created it). - case rabbit_misc:execute_mnesia_transaction( - fun () -> - Match = - mnesia:match_object( - rabbit_durable_queue, RecoveredQ, read), - case Match of - [_] -> ok = store_queue(Q), - true; - [] -> false - end - end) of - true -> [Q|Acc]; - false -> exit(Q#amqqueue.pid, shutdown), - Acc - end - end, [], DurableQueues), - {ok, RealDurableQueues}. - find_durable_queues() -> Node = node(), %% TODO: use dirty ops instead @@ -181,6 +149,28 @@ find_durable_queues() -> node(Pid) == Node])) end). +recover_durable_queues(DurableQueues) -> + lists:foldl( + fun (RecoveredQ, Acc) -> + Q = start_queue_process(RecoveredQ), + %% We need to catch the case where a client connected to + %% another node has deleted the queue (and possibly + %% re-created it). + case rabbit_misc:execute_mnesia_transaction( + fun () -> + case mnesia:match_object( + rabbit_durable_queue, RecoveredQ, read) of + [_] -> ok = store_queue(Q), + true; + [] -> false + end + end) of + true -> [Q|Acc]; + false -> exit(Q#amqqueue.pid, shutdown), + Acc + end + end, [], DurableQueues). + declare(QueueName, Durable, AutoDelete, Args) -> Q = start_queue_process(#amqqueue{name = QueueName, durable = Durable, |
