summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2010-05-07 16:04:26 +0100
committerMatthew Sackman <matthew@lshift.net>2010-05-07 16:04:26 +0100
commita3201c48d51dbfc7783db567ab4ec7a20a1d3ed4 (patch)
tree849dbe75a28a44d69e8bb93d1d348d8245146fba
parent1bb9b955955e5a31708b2a5cd1466f1d9b1bd24c (diff)
downloadrabbitmq-server-a3201c48d51dbfc7783db567ab4ec7a20a1d3ed4.tar.gz
More sensible registration and cancellation to various services
-rw-r--r--src/rabbit_amqqueue_process.erl12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index a4f9f3f6..fb4c0860 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -137,10 +137,10 @@ code_change(_OldVsn, State, _Extra) ->
terminate_shutdown(Fun, State) ->
State1 = #q{backing_queue = BQ, backing_queue_state = BQS} =
stop_sync_timer(stop_rate_timer(State)),
- ok = rabbit_memory_monitor:deregister(self()),
case BQS of
undefined -> State;
- _ -> BQS1 = lists:foldl(
+ _ -> ok = rabbit_memory_monitor:deregister(self()),
+ BQS1 = lists:foldl(
fun (#cr{txn = none}, BQSN) ->
BQSN;
(#cr{txn = Txn}, BQSN) ->
@@ -723,10 +723,6 @@ handle_call({maybe_run_queue_via_backing_queue, Fun}, _From, State) ->
handle_call({init, Recover}, From,
State = #q{q = Q = #amqqueue{name = QName, durable = IsDurable},
backing_queue = BQ, backing_queue_state = undefined}) ->
- ok = file_handle_cache:register_callback(
- rabbit_amqqueue, set_maximum_since_use, [self()]),
- ok = rabbit_memory_monitor:register(
- self(), {rabbit_amqqueue, set_ram_duration_target, [self()]}),
%% TODO: If we're exclusively owned && our owner isn't alive &&
%% Recover then we should BQ:init and then {stop, normal,
%% not_found, State}, relying on terminate to delete the queue.
@@ -735,6 +731,10 @@ handle_call({init, Recover}, From,
{stop, normal, not_found, State};
Q ->
gen_server2:reply(From, Q),
+ ok = file_handle_cache:register_callback(
+ rabbit_amqqueue, set_maximum_since_use, [self()]),
+ ok = rabbit_memory_monitor:register(
+ self(), {rabbit_amqqueue, set_ram_duration_target, [self()]}),
noreply(State#q{backing_queue_state =
BQ:init(QName, IsDurable, Recover)});
Q1 ->