diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-08-26 15:52:11 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-08-26 15:52:11 +0100 |
| commit | 65cb1da3f4fe3a018144b69c41832ecb55841906 (patch) | |
| tree | 1daa27ca6037bf3ca0b48fce4367988188af2c7e /src | |
| parent | 10d0bc116137460a0890a052163916c7e70bb71a (diff) | |
| download | rabbitmq-server-git-65cb1da3f4fe3a018144b69c41832ecb55841906.tar.gz | |
cosmetic + assert major invariant of queue_process on reply and noreply
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 5d78b2055f..406429ef8f 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -132,11 +132,16 @@ code_change(_OldVsn, State, _Extra) -> %%---------------------------------------------------------------------------- reply(Reply, NewState) -> + assert_invariant(NewState), {reply, Reply, start_memory_timer(NewState), hibernate}. noreply(NewState) -> + assert_invariant(NewState), {noreply, start_memory_timer(NewState), hibernate}. +assert_invariant(#q { active_consumers = AC, mixed_state = MS }) -> + true = (queue:is_empty(AC) orelse rabbit_mixed_queue:is_empty(MS)). + start_memory_timer(State = #q { memory_report_timer = undefined }) -> {ok, TRef} = timer:send_after(?MINIMUM_MEMORY_REPORT_TIME_INTERVAL, report_memory), @@ -329,8 +334,7 @@ deliver_or_requeue_n(MsgsWithAcks, State) -> {{_RemainingLengthMinusOne, AutoAcks, OutstandingMsgs}, NewState} = deliver_msgs_to_consumers( Funs, {length(MsgsWithAcks), [], MsgsWithAcks}, State), - {ok, MS} = rabbit_mixed_queue:ack(AutoAcks, - NewState #q.mixed_state), + {ok, MS} = rabbit_mixed_queue:ack(AutoAcks, NewState #q.mixed_state), case OutstandingMsgs of [] -> NewState #q { mixed_state = MS }; _ -> {ok, MS1} = rabbit_mixed_queue:requeue(OutstandingMsgs, MS), |
