summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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