summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-09-25 11:22:37 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-09-25 11:22:37 +0100
commit74ad5cd947bb268951122245b899a6e9a8c4c2f7 (patch)
tree7531d216a6ef7c3c07b52769f9d566f85adfa2e0
parent731f51f03462ed526c4c477578153065cfc6a1a2 (diff)
downloadrabbitmq-server-bug26389.tar.gz
When we add a new consumer we might be inactive; make sure we transition to active since consumers by definition start out unblocked.bug26389
-rw-r--r--src/rabbit_queue_consumers.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rabbit_queue_consumers.erl b/src/rabbit_queue_consumers.erl
index 4b1f07de..c60adb5b 100644
--- a/src/rabbit_queue_consumers.erl
+++ b/src/rabbit_queue_consumers.erl
@@ -125,7 +125,8 @@ unacknowledged_message_count() ->
lists:sum([queue:len(C#cr.acktags) || C <- all_ch_record()]).
add(ChPid, CTag, NoAck, LimiterPid, LimiterActive, Prefetch, Args, IsEmpty,
- State = #state{consumers = Consumers}) ->
+ State = #state{consumers = Consumers,
+ use = CUInfo}) ->
C = #cr{consumer_count = Count,
limiter = Limiter} = ch_record(ChPid, LimiterPid),
Limiter1 = case LimiterActive of
@@ -144,7 +145,8 @@ add(ChPid, CTag, NoAck, LimiterPid, LimiterActive, Prefetch, Args, IsEmpty,
ack_required = not NoAck,
prefetch = Prefetch,
args = Args},
- State#state{consumers = add_consumer({ChPid, Consumer}, Consumers)}.
+ State#state{consumers = add_consumer({ChPid, Consumer}, Consumers),
+ use = update_use(CUInfo, active)}.
remove(ChPid, CTag, State = #state{consumers = Consumers}) ->
case lookup_ch(ChPid) of