summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2010-05-04 23:48:24 +0100
committerMatthias Radestock <matthias@lshift.net>2010-05-04 23:48:24 +0100
commit04178c056f9c666f31c5f42cf94d76d6191299eb (patch)
tree0f6baf841f5de775975b36e7d90a8d0b2c6c3f6b /src
parent68fcf268b9280ea57796b1d1023a5497b5ff4327 (diff)
downloadrabbitmq-server-git-04178c056f9c666f31c5f42cf94d76d6191299eb.tar.gz
disentangle qi from msg_store
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_queue_index.erl17
-rw-r--r--src/rabbit_variable_queue.erl7
2 files changed, 10 insertions, 14 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index 5d2908e1fd..aee295ae3b 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -34,8 +34,7 @@
-export([init/3, terminate/2, terminate_and_erase/1, write_published/4,
write_delivered/2, write_acks/2, sync_seq_ids/2, flush_journal/1,
read_segment_entries/2, next_segment_boundary/1, segment_size/0,
- find_lowest_seq_id_seg_and_next_seq_id/1,
- prepare_msg_store_seed_funs/1]).
+ find_lowest_seq_id_seg_and_next_seq_id/1, recover/1]).
-export([queue_index_walker_reader/3]). %% for internal use only
@@ -171,7 +170,7 @@
num
}).
--include("rabbit_msg_store.hrl").
+-include("rabbit.hrl").
%%----------------------------------------------------------------------------
@@ -193,6 +192,8 @@
journal_handle :: hdl(),
dirty_count :: integer()
}).
+-type(startup_fun_state() ::
+ {(fun ((A) -> 'finished' | {guid(), non_neg_integer(), A})), A}).
-spec(init/3 :: (queue_name(), boolean(), fun ((guid()) -> boolean())) ->
{'undefined' |
@@ -211,10 +212,7 @@
-spec(segment_size/0 :: () -> non_neg_integer()).
-spec(find_lowest_seq_id_seg_and_next_seq_id/1 :: (qistate()) ->
{non_neg_integer(), non_neg_integer(), qistate()}).
--spec(prepare_msg_store_seed_funs/1 ::
- ([queue_name()]) ->
- {{[binary()] | 'undefined', startup_fun_state()},
- {[binary()] | 'undefined', startup_fun_state()}}).
+-spec(recover/1 :: ([queue_name()]) -> {[binary()], startup_fun_state()}).
-endif.
@@ -431,7 +429,7 @@ find_lowest_seq_id_seg_and_next_seq_id(State) ->
end,
{LowSeqIdSeg, NextSeqId, State}.
-prepare_msg_store_seed_funs(DurableQueues) ->
+recover(DurableQueues) ->
DurableDict = dict:from_list([ {queue_name_to_dir_name(Queue), Queue} ||
Queue <- DurableQueues ]),
QueuesDir = queues_dir(),
@@ -471,8 +469,7 @@ prepare_msg_store_seed_funs(DurableQueues) ->
Dir = filename:join(queues_dir(), DirName),
ok = rabbit_misc:recursive_delete([Dir])
end, TransientDirs),
- {{undefined, {fun (ok) -> finished end, ok}},
- {DurableRefs, {fun queue_index_walker/1, DurableQueueNames}}}.
+ {DurableRefs, {fun queue_index_walker/1, DurableQueueNames}}.
%%----------------------------------------------------------------------------
%% Msg Store Startup Delta Function
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index c5f18a9462..18b3847d89 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -257,14 +257,13 @@
start(DurableQueues) ->
ok = rabbit_msg_store:clean(?TRANSIENT_MSG_STORE, rabbit_mnesia:dir()),
- {{TransRefs, TransStartFunState}, {PersistRefs, PersistStartFunState}}
- = rabbit_queue_index:prepare_msg_store_seed_funs(DurableQueues),
+ {Refs, StartFunState} = rabbit_queue_index:recover(DurableQueues),
ok = rabbit_sup:start_child(?TRANSIENT_MSG_STORE, rabbit_msg_store,
[?TRANSIENT_MSG_STORE, rabbit_mnesia:dir(),
- TransRefs, TransStartFunState]),
+ undefined, {fun (ok) -> finished end, ok}]),
ok = rabbit_sup:start_child(?PERSISTENT_MSG_STORE, rabbit_msg_store,
[?PERSISTENT_MSG_STORE, rabbit_mnesia:dir(),
- PersistRefs, PersistStartFunState]).
+ Refs, StartFunState]).
init(QueueName, IsDurable, _Recover) ->
PersistentStore = case IsDurable of