diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2013-05-22 13:04:38 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2013-05-22 13:04:38 +0100 |
| commit | fe5782434bbf1c9ad1235d41e59a1c5bf1f5ca88 (patch) | |
| tree | 48c4489764d660363a68f452270db331e4881c5d | |
| parent | a336134f94a4aecb8f7eddc1668b241cb39cea66 (diff) | |
| download | rabbitmq-server-git-fe5782434bbf1c9ad1235d41e59a1c5bf1f5ca88.tar.gz | |
Only consume if we are empty.
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 9 |
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. |
