diff options
| author | Matthias Radestock <matthias@lshift.net> | 2009-09-08 13:21:49 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2009-09-08 13:21:49 +0100 |
| commit | 564fd500cd7bf64009bec118fd235883e983a115 (patch) | |
| tree | c7c1ae8dc446a9c575800e8feed8e382f4294ae5 | |
| parent | f7aaa4f2423f05cadaa1c04a9fe684bedfd29b16 (diff) | |
| download | rabbitmq-server-git-564fd500cd7bf64009bec118fd235883e983a115.tar.gz | |
api tweak: pass durable queues in list rather than set
lists are more pleasant than sets in APIs, plus in our use we have a
list to start with.
| -rw-r--r-- | src/rabbit.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_disk_queue.erl | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index f3008a9339..3993de5096 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -155,10 +155,8 @@ start(normal, []) -> ok = maybe_insert_default_data(), ok = rabbit_exchange:recover(), {ok, DurableQueues} = rabbit_amqqueue:recover(), - DurableQueueNames = - sets:from_list([ Q #amqqueue.name || Q <- DurableQueues ]), ok = rabbit_disk_queue:delete_non_durable_queues( - DurableQueueNames) + [ Q #amqqueue.name || Q <- DurableQueues ]) end}, {"builtin applications", fun () -> diff --git a/src/rabbit_disk_queue.erl b/src/rabbit_disk_queue.erl index b863f60808..c26221842e 100644 --- a/src/rabbit_disk_queue.erl +++ b/src/rabbit_disk_queue.erl @@ -112,7 +112,7 @@ -spec(requeue_next_n/2 :: (queue_name(), non_neg_integer()) -> 'ok'). -spec(purge/1 :: (queue_name()) -> non_neg_integer()). -spec(delete_queue/1 :: (queue_name()) -> 'ok'). --spec(delete_non_durable_queues/1 :: (set()) -> 'ok'). +-spec(delete_non_durable_queues/1 :: ([queue_name()]) -> 'ok'). -spec(len/1 :: (queue_name()) -> non_neg_integer()). -spec(foldl/3 :: (fun ((message(), ack_tag(), boolean(), A) -> A), A, queue_name()) -> A). @@ -792,9 +792,10 @@ internal_delete_queue(Q, State) -> internal_delete_non_durable_queues( DurableQueues, State = #dqstate { sequences = Sequences }) -> + DurableQueueSet = sets:from_list(DurableQueues), ets:foldl( fun ({Q, _Read, _Write}, {ok, State1}) -> - case sets:is_element(Q, DurableQueues) of + case sets:is_element(Q, DurableQueueSet) of true -> {ok, State1}; false -> internal_delete_queue(Q, State1) end |
