diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2013-02-12 16:26:23 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2013-02-12 16:26:23 +0000 |
| commit | c0d67a8548145383d3f62076e855ba97209d916f (patch) | |
| tree | 69c2bc568738a1dbe266fa8aac6240e64b8f6a93 | |
| parent | 4620410d0be26a38b0224b6a1faed51da8459451 (diff) | |
| download | rabbitmq-server-git-c0d67a8548145383d3f62076e855ba97209d916f.tar.gz | |
Clear drain flag when we run out of credit.
| -rw-r--r-- | src/rabbit_limiter.erl | 7 |
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 |
