summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-02-12 14:57:59 +0000
committerSimon MacMullen <simon@rabbitmq.com>2013-02-12 14:57:59 +0000
commit7703c46ae0313f203cc2dfbc0f11348001967629 (patch)
tree69cf4815df0e0edfebfca9a1ae3b361831b4069e
parent4fe1e2e497cff37bc578775f89b6ca7361ff4c3a (diff)
downloadrabbitmq-server-7703c46ae0313f203cc2dfbc0f11348001967629.tar.gz
Remove tags from blocked_ctags when a consumer goes away.
-rw-r--r--src/rabbit_limiter.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rabbit_limiter.erl b/src/rabbit_limiter.erl
index 5774aee0..efc499cd 100644
--- a/src/rabbit_limiter.erl
+++ b/src/rabbit_limiter.erl
@@ -176,8 +176,10 @@ drained(Limiter = #token{credits = Credits}) ->
end, {[], Credits}, Credits),
{CTagCredits, Limiter#token{credits = Credits2}}.
-forget_consumer(Limiter = #token{credits = Credits}, CTag) ->
- Limiter#token{credits = dict:erase(CTag, Credits)}.
+forget_consumer(Limiter = #token{credits = Credits,
+ blocked_ctags = BCTags}, CTag) ->
+ Limiter#token{credits = dict:erase(CTag, Credits),
+ blocked_ctags = BCTags -- [CTag]}.
copy_queue_state(#token{credits = Credits, blocked_ctags = BCTags}, Token) ->
Token#token{credits = Credits, blocked_ctags = BCTags}.