summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2010-05-18 16:29:12 +0100
committerMatthew Sackman <matthew@lshift.net>2010-05-18 16:29:12 +0100
commit1244097e1c6adb20808fda79f2a8d02b4d0d039a (patch)
tree467394abf1ba336b16440504d38dd06107b82cfd /src
parent99b9e4f61cfa0243817ca1ed223248586f176436 (diff)
downloadrabbitmq-server-git-1244097e1c6adb20808fda79f2a8d02b4d0d039a.tar.gz
No need to build up a list of transient queue indices to delete
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_queue_index.erl16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index 40fa0be0bb..53dbf311c6 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -398,9 +398,9 @@ recover(DurableQueues) ->
{error, enoent} -> []
end,
DurableDirectories = sets:from_list(dict:fetch_keys(DurableDict)),
- {DurableQueueNames, TransientDirs, DurableTerms} =
+ {DurableQueueNames, DurableTerms} =
lists:foldl(
- fun (QueueDir, {DurableAcc, TransientAcc, TermsAcc}) ->
+ fun (QueueDir, {DurableAcc, TermsAcc}) ->
case sets:is_element(QueueDir, DurableDirectories) of
true ->
TermsAcc1 =
@@ -410,15 +410,13 @@ recover(DurableQueues) ->
{ok, Terms} -> [Terms | TermsAcc]
end,
{[dict:fetch(QueueDir, DurableDict) | DurableAcc],
- TransientAcc, TermsAcc1};
+ TermsAcc1};
false ->
- {DurableAcc, [QueueDir | TransientAcc], TermsAcc}
+ Dir = filename:join(queues_dir(), QueueDir),
+ ok = rabbit_misc:recursive_delete([Dir]),
+ {DurableAcc, TermsAcc}
end
- end, {[], [], []}, Directories),
- lists:foreach(fun (DirName) ->
- Dir = filename:join(queues_dir(), DirName),
- ok = rabbit_misc:recursive_delete([Dir])
- end, TransientDirs),
+ end, {[], []}, Directories),
{DurableTerms, {fun queue_index_walker/1, {start, DurableQueueNames}}}.
%%----------------------------------------------------------------------------