summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2009-09-08 13:21:49 +0100
committerMatthias Radestock <matthias@lshift.net>2009-09-08 13:21:49 +0100
commit564fd500cd7bf64009bec118fd235883e983a115 (patch)
treec7c1ae8dc446a9c575800e8feed8e382f4294ae5
parentf7aaa4f2423f05cadaa1c04a9fe684bedfd29b16 (diff)
downloadrabbitmq-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.erl4
-rw-r--r--src/rabbit_disk_queue.erl5
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