diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_reader.erl | 12 |
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), |
