diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2012-01-10 17:51:14 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2012-01-10 17:51:14 +0000 |
commit | d857ef1c2e07dfb562d45a58cd93b6bc2a7dd1bc (patch) | |
tree | 58ef02a8b934321cd8b392b2f87890c0d4889856 /src/rabbit_reader.erl | |
parent | afeee187aa924f6e375c5740c79e4a50a3fb40e0 (diff) | |
download | rabbitmq-server-d857ef1c2e07dfb562d45a58cd93b6bc2a7dd1bc.tar.gz |
Inlines.
Diffstat (limited to 'src/rabbit_reader.erl')
-rw-r--r-- | src/rabbit_reader.erl | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index 87829b09..94eb88ad 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -343,7 +343,8 @@ handle_other(emit_stats, Deb, State) -> handle_other({system, From, Request}, Deb, State = #v1{parent = Parent}) -> sys:handle_system_msg(Request, From, Parent, ?MODULE, Deb, State); handle_other({bump_credit, Msg}, Deb, State) -> - recvloop(Deb, bump_credit(Msg, State)); + rabbit_flow:bump(Msg), + recvloop(Deb, update_blockers(false, self(), State)); handle_other(Other, _Deb, _State) -> %% internal error -> something worth dying for exit({unexpected_message, Other}). @@ -390,16 +391,6 @@ remove_blocker(Blocker, State = #v1{blockers = Blockers}) -> _ -> State#v1{blockers = NewBlockers} end. -bump_credit(Msg, State) -> - rabbit_flow:bump(Msg), - update_blockers(false, self(), State). - -check_credit(State) when ?IS_RUNNING(State) -> - case rabbit_flow:blocked() of - true -> update_blockers(true, self(), State); - false -> State - end. - close_connection(State = #v1{queue_collector = Collector, connection = #connection{ timeout_sec = TimeoutSec}}) -> @@ -534,8 +525,11 @@ handle_frame(Type, Channel, Payload, AnalyzedFrame, self(), Channel, ChPid, FramingState), put({channel, Channel}, {ChPid, NewAState}), - post_process_frame(AnalyzedFrame, ChPid, - check_credit(State)); + State1 = case rabbit_flow:blocked() of + true -> update_blockers(true, self(), State); + false -> State + end, + post_process_frame(AnalyzedFrame, ChPid, State1); undefined -> case ?IS_RUNNING(State) of true -> send_to_new_channel( |