summaryrefslogtreecommitdiff
path: root/src
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
commit4620410d0be26a38b0224b6a1faed51da8459451 (patch)
tree69cf4815df0e0edfebfca9a1ae3b361831b4069e /src
parentae37cc66edccd148e8112be56a719f8d5b51b722 (diff)
downloadrabbitmq-server-git-4620410d0be26a38b0224b6a1faed51da8459451.tar.gz
Remove tags from blocked_ctags when a consumer goes away.
Diffstat (limited to 'src')
-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 5774aee063..efc499cdf8 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}.