summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-04-16 12:02:21 +0100
committerSimon MacMullen <simon@rabbitmq.com>2013-04-16 12:02:21 +0100
commit84d39b300d7120862f7d8c4ea46c4168f385c8b5 (patch)
treeef30d728078d5b71b13c6345510915503d3942a1
parentff1a88ea9e14987f876e7d24f7b2cf2dbcb9d099 (diff)
downloadrabbitmq-server-git-84d39b300d7120862f7d8c4ea46c4168f385c8b5.tar.gz
Don't wipe the slate clean each time we get a conserve_resources message.
-rw-r--r--src/rabbit_reader.erl12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index 9a85110175..ec497410c1 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -324,11 +324,13 @@ mainloop(Deb, State = #v1{sock = Sock, buf = Buf, buf_len = BufLen}) ->
end.
handle_other({conserve_resources, Source, Conserve},
- State = #v1{throttle = Throttle}) ->
- Throttle1 = Throttle#throttle{conserve_resources = case Conserve of
- true -> [Source];
- false -> []
- end},
+ State = #v1{throttle = Throttle =
+ #throttle{conserve_resources = CR}}) ->
+ CR1 = case Conserve of
+ true -> [Source | CR];
+ false -> CR -- [Source]
+ end,
+ Throttle1 = Throttle#throttle{conserve_resources = CR1},
control_throttle(State#v1{throttle = Throttle1});
handle_other({channel_closing, ChPid}, State) ->
ok = rabbit_channel:ready_for_close(ChPid),