summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-11-29 12:40:52 +0000
committerMatthew Sackman <matthew@rabbitmq.com>2010-11-29 12:40:52 +0000
commit28fedebb44b723fb7a632d02a42fdf2519a30902 (patch)
tree1bdee7be039e45cbdf4e5b5fce6a3ebea3d88223
parent7e1fa7f1cbf348eb5d6438ce4c84b4fcf8d0dee3 (diff)
downloadrabbitmq-server-git-28fedebb44b723fb7a632d02a42fdf2519a30902.tar.gz
Present the whole amqqueue record to the BQ (remove duplicated IsDurable flag, correct BQ callbacks)
-rw-r--r--include/rabbit_backing_queue_spec.hrl3
-rw-r--r--src/rabbit_amqqueue_process.erl5
-rw-r--r--src/rabbit_backing_queue.erl2
-rw-r--r--src/rabbit_invariable_queue.erl4
-rw-r--r--src/rabbit_variable_queue.erl6
5 files changed, 9 insertions, 11 deletions
diff --git a/include/rabbit_backing_queue_spec.hrl b/include/rabbit_backing_queue_spec.hrl
index 20230b2447..7b7f388529 100644
--- a/include/rabbit_backing_queue_spec.hrl
+++ b/include/rabbit_backing_queue_spec.hrl
@@ -43,8 +43,7 @@
-spec(start/1 :: ([rabbit_amqqueue:name()]) -> 'ok').
-spec(stop/0 :: () -> 'ok').
--spec(init/3 :: (rabbit_amqqueue:name(), is_durable(), attempt_recovery()) ->
- state()).
+-spec(init/2 :: (rabbit_types:amqqueue(), attempt_recovery()) -> state()).
-spec(terminate/1 :: (state()) -> state()).
-spec(delete_and_terminate/1 :: (state()) -> state()).
-spec(purge/1 :: (state()) -> {purged_msg_count(), state()}).
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index 2ae05300c2..08c688c7a2 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -150,8 +150,7 @@ code_change(_OldVsn, State, _Extra) ->
%%----------------------------------------------------------------------------
declare(Recover, From,
- State = #q{q = Q = #amqqueue{durable = IsDurable},
- backing_queue = BQ, backing_queue_state = undefined,
+ State = #q{q = Q, backing_queue = BQ, backing_queue_state = undefined,
stats_timer = StatsTimer}) ->
case rabbit_amqqueue:internal_declare(Q, Recover) of
not_found -> {stop, normal, not_found, State};
@@ -162,7 +161,7 @@ declare(Recover, From,
ok = rabbit_memory_monitor:register(
self(), {rabbit_amqqueue,
set_ram_duration_target, [self()]}),
- BQS = BQ:init(Q, IsDurable, Recover),
+ BQS = BQ:init(Q, Recover),
State1 = process_args(State#q{backing_queue_state = BQS}),
rabbit_event:notify(queue_created,
infos(?CREATION_EVENT_KEYS, State1)),
diff --git a/src/rabbit_backing_queue.erl b/src/rabbit_backing_queue.erl
index 352e76fd0c..7237f0ea3c 100644
--- a/src/rabbit_backing_queue.erl
+++ b/src/rabbit_backing_queue.erl
@@ -48,7 +48,7 @@ behaviour_info(callbacks) ->
{stop, 0},
%% Initialise the backing queue and its state.
- {init, 3},
+ {init, 2},
%% Called on queue shutdown when queue isn't being deleted.
{terminate, 1},
diff --git a/src/rabbit_invariable_queue.erl b/src/rabbit_invariable_queue.erl
index a2ed13d537..41aff18588 100644
--- a/src/rabbit_invariable_queue.erl
+++ b/src/rabbit_invariable_queue.erl
@@ -31,7 +31,7 @@
-module(rabbit_invariable_queue).
--export([init/3, terminate/1, delete_and_terminate/1, purge/1, publish/3,
+-export([init/2, terminate/1, delete_and_terminate/1, purge/1, publish/3,
publish_delivered/4, fetch/2, ack/2, tx_publish/4, tx_ack/3,
dropwhile/2, tx_rollback/2, tx_commit/4, requeue/3, len/1, is_empty/1,
set_ram_duration_target/2, ram_duration/1, needs_idle_timeout/1,
@@ -64,7 +64,7 @@ start(DurableQueues) ->
stop() ->
ok = rabbit_sup:stop_child(rabbit_persister).
-init(#amqqueue { name = QName }, IsDurable, Recover) ->
+init(#amqqueue { name = QName, durable = IsDurable }, Recover) ->
Q = queue:from_list(case IsDurable andalso Recover of
true -> rabbit_persister:queue_content(QName);
false -> []
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index dd39a1c266..73a68ec346 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -31,7 +31,7 @@
-module(rabbit_variable_queue).
--export([init/3, terminate/1, delete_and_terminate/1,
+-export([init/2, terminate/1, delete_and_terminate/1,
purge/1, publish/3, publish_delivered/4, fetch/2, ack/2,
tx_publish/4, tx_ack/3, tx_rollback/2, tx_commit/4,
requeue/3, len/1, is_empty/1, dropwhile/2,
@@ -403,7 +403,7 @@ stop_msg_store() ->
ok = rabbit_sup:stop_child(?PERSISTENT_MSG_STORE),
ok = rabbit_sup:stop_child(?TRANSIENT_MSG_STORE).
-init(#amqqueue { name = QueueName }, IsDurable, false) ->
+init(#amqqueue { name = QueueName, durable = IsDurable }, false) ->
IndexState = rabbit_queue_index:init(QueueName),
init(IsDurable, IndexState, 0, [],
case IsDurable of
@@ -412,7 +412,7 @@ init(#amqqueue { name = QueueName }, IsDurable, false) ->
end,
msg_store_client_init(?TRANSIENT_MSG_STORE));
-init(#amqqueue { name = QueueName }, true, true) ->
+init(#amqqueue { name = QueueName, durable = true }, true) ->
Terms = rabbit_queue_index:shutdown_terms(QueueName),
{PRef, TRef, Terms1} =
case [persistent_ref, transient_ref] -- proplists:get_keys(Terms) of