diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2013-02-11 14:16:29 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2013-02-11 14:16:29 +0000 |
commit | 3e6eb6cfeeba79356478f151cd8f166d8523ff95 (patch) | |
tree | 0203999085fbf10e9f0772231f803620bd58cfa3 | |
parent | 9033ea545e7c8ea7ab3193bd28782f62ff700f1e (diff) | |
download | rabbitmq-server-3e6eb6cfeeba79356478f151cd8f166d8523ff95.tar.gz |
some inlining and moving around
-rw-r--r-- | src/rabbit_limiter.erl | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/rabbit_limiter.erl b/src/rabbit_limiter.erl index 8ed1adc7..46b465bc 100644 --- a/src/rabbit_limiter.erl +++ b/src/rabbit_limiter.erl @@ -181,24 +181,13 @@ copy_queue_state(#token{q_state = Credits}, Token) -> record_send_q(CTag, Len, ChPid, Credits) -> case dict:find(CTag, Credits) of - {ok, Cred} -> - decr_credit(CTag, Len, ChPid, Cred, Credits); + {ok, #credit{credit = Credit, drain = Drain}} -> + NewCredit = maybe_drain(Len - 1, Drain, CTag, ChPid, Credit - 1), + write_credit(CTag, NewCredit, Drain, Credits); error -> Credits end. -decr_credit(CTag, Len, ChPid, Cred, Credits) -> - #credit{credit = Credit, drain = Drain} = Cred, - NewCredit = maybe_drain(Len - 1, Drain, CTag, ChPid, Credit - 1), - write_credit(CTag, NewCredit, Drain, Credits). - -maybe_drain(0, true, CTag, ChPid, Credit) -> - rabbit_channel:send_drained(ChPid, CTag, Credit), - 0; %% Magic reduction to 0 - -maybe_drain(_, _, _, _, Credit) -> - Credit. - update_credit(CTag, Len, ChPid, Credit, Drain, Credits) -> NewCredit = maybe_drain(Len, Drain, CTag, ChPid, Credit), NewCredits = write_credit(CTag, NewCredit, Drain, Credits), @@ -208,8 +197,14 @@ update_credit(CTag, Len, ChPid, Credit, Drain, Credits) -> end. write_credit(CTag, Credit, Drain, Credits) -> - dict:store(CTag, #credit{credit = Credit, - drain = Drain}, Credits). + dict:store(CTag, #credit{credit = Credit, drain = Drain}, Credits). + +maybe_drain(0, true, CTag, ChPid, Credit) -> + rabbit_channel:send_drained(ChPid, CTag, Credit), + 0; %% Magic reduction to 0 + +maybe_drain(_, _, _, _, Credit) -> + Credit. %%---------------------------------------------------------------------------- %% gen_server callbacks |