diff options
| -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 |
