summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-01-12 15:03:35 +0000
committerSimon MacMullen <simon@rabbitmq.com>2012-01-12 15:03:35 +0000
commitfe770870efc47212af603ab1ca2c0bb549f162cd (patch)
treecf8f7df0a39e02d716b8f6bfaf83439919c15523
parent91085cdaacb39984a7017965bb02b1a0db064bab (diff)
downloadrabbitmq-server-fe770870efc47212af603ab1ca2c0bb549f162cd.tar.gz
Matthias points out that we don't need to remember that a pid has gone away: if by some chance we end up talking to it again we'll end up monitoring it again and then noticing it is down, and we'll always have ?MAX_CREDIT available each time.
-rw-r--r--src/rabbit_flow.erl10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/rabbit_flow.erl b/src/rabbit_flow.erl
index 9759e726..54d019cd 100644
--- a/src/rabbit_flow.erl
+++ b/src/rabbit_flow.erl
@@ -51,7 +51,7 @@ blocked() ->
get(credit_blocked, []) =/= [].
send(From) ->
- Credit = get_credit(From) - 1,
+ Credit = get({credit_from, From}, ?MAX_CREDIT) - 1,
case Credit of
0 -> block(From);
_ -> ok
@@ -60,7 +60,7 @@ send(From) ->
receiver_down(From) ->
unblock(From),
- put({credit_from, From}, quiescing).
+ erase({credit_from, From}).
%% --------------------------------------------------------------------------
@@ -89,9 +89,3 @@ get(Key, Default) ->
undefined -> Default;
Value -> Value
end.
-
-get_credit(From) ->
- case get({credit_from, From}, ?MAX_CREDIT) of
- quiescing -> 1;
- Credit -> Credit
- end.