summaryrefslogtreecommitdiff
path: root/src
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
commitbd24d59b6010d6fea72f0e39a0d3b312f2f31fce (patch)
treecf8f7df0a39e02d716b8f6bfaf83439919c15523 /src
parent647348c7f1e59cd0bc4082f5decbe40b9b8dfd36 (diff)
downloadrabbitmq-server-git-bd24d59b6010d6fea72f0e39a0d3b312f2f31fce.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.
Diffstat (limited to 'src')
-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 9759e72624..54d019cd10 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.