summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_limiter.erl7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/rabbit_limiter.erl b/src/rabbit_limiter.erl
index efc499cdf8..e76fc21762 100644
--- a/src/rabbit_limiter.erl
+++ b/src/rabbit_limiter.erl
@@ -209,8 +209,11 @@ update_credit(CTag, Credit, Drain, Credits) ->
false -> {[], NewCredits}
end.
-write_credit(CTag, Credit, Drain, Credits) ->
- dict:store(CTag, #credit{credit = Credit, drain = Drain}, Credits).
+write_credit(CTag, Credit, Drain, Credits) when Credit > 0 ->
+ dict:store(CTag, #credit{credit = Credit, drain = Drain}, Credits);
+%% Using up all credit means we do not need to send a drained event
+write_credit(CTag, Credit, _Drain, Credits) ->
+ dict:store(CTag, #credit{credit = Credit, drain = false}, Credits).
%%----------------------------------------------------------------------------
%% gen_server callbacks