summaryrefslogtreecommitdiff
path: root/src/rabbit_amqqueue_process.erl
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-01-09 14:38:48 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-01-09 14:38:48 +0000
commit065c6794c4f6279487d5db45ebbf610d57e70335 (patch)
treee52211064e8b58ba54e82533083fa38427b1b5de /src/rabbit_amqqueue_process.erl
parentaf0265053ebae4ae006fd4cca2d66bf499dd26ef (diff)
downloadrabbitmq-server-065c6794c4f6279487d5db45ebbf610d57e70335.tar.gz
Upon unblocking, unblock, and run message queue.
Diffstat (limited to 'src/rabbit_amqqueue_process.erl')
-rw-r--r--src/rabbit_amqqueue_process.erl11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index cc511396..b220272c 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -634,10 +634,13 @@ backing_queue_timeout(State = #q{backing_queue = BQ,
backing_queue_state = BQS}) ->
State#q{backing_queue_state = BQ:timeout(BQS)}.
-subtract_acks(ChPid, CTag, AckTags, State, Fun) ->
- case rabbit_queue_consumers:subtract_acks(ChPid, CTag, AckTags) of
- not_found -> State;
- ok -> Fun(State)
+subtract_acks(ChPid, CTag, AckTags, State = #q{consumers = Consumers}, Fun) ->
+ case rabbit_queue_consumers:subtract_acks(
+ ChPid, CTag, AckTags, Consumers) of
+ not_found -> State;
+ unchanged -> Fun(State);
+ {unblocked, Consumers1} -> State1 = State#q{consumers = Consumers1},
+ run_message_queue(true, Fun(State1))
end.
message_properties(Message, Confirm, #q{ttl = TTL}) ->