summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-05-22 13:04:38 +0100
committerSimon MacMullen <simon@rabbitmq.com>2013-05-22 13:04:38 +0100
commitfe5782434bbf1c9ad1235d41e59a1c5bf1f5ca88 (patch)
tree48c4489764d660363a68f452270db331e4881c5d
parenta336134f94a4aecb8f7eddc1668b241cb39cea66 (diff)
downloadrabbitmq-server-git-fe5782434bbf1c9ad1235d41e59a1c5bf1f5ca88.tar.gz
Only consume if we are empty.
-rw-r--r--src/rabbit_amqqueue_process.erl9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index 6eb8186957..0fda5b8e11 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -522,13 +522,14 @@ discard(#delivery{sender = SenderPid,
end,
BQS1 = BQ:discard(MsgId, SenderPid, BQS),
State1#q{backing_queue_state = BQS1}.
+
run_message_queue(State = #q{q = Q}) ->
- {_IsEmpty1, State1} = deliver_msgs_to_consumers(
+ {IsEmpty1, State1} = deliver_msgs_to_consumers(
fun deliver_from_queue_deliver/2,
is_empty(State), State),
- case queue:len(State1#q.active_consumers) of
- 0 -> rabbit_federation_queue:stop(Q);
- _ -> rabbit_federation_queue:go(Q)
+ case queue:len(State1#q.active_consumers) =/= 0 andalso IsEmpty1 of
+ true -> rabbit_federation_queue:go(Q);
+ false -> rabbit_federation_queue:stop(Q)
end,
State1.