summaryrefslogtreecommitdiff
path: root/src/rabbit_reader.erl
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-01-10 17:51:14 +0000
committerSimon MacMullen <simon@rabbitmq.com>2012-01-10 17:51:14 +0000
commitd857ef1c2e07dfb562d45a58cd93b6bc2a7dd1bc (patch)
tree58ef02a8b934321cd8b392b2f87890c0d4889856 /src/rabbit_reader.erl
parentafeee187aa924f6e375c5740c79e4a50a3fb40e0 (diff)
downloadrabbitmq-server-d857ef1c2e07dfb562d45a58cd93b6bc2a7dd1bc.tar.gz
Inlines.
Diffstat (limited to 'src/rabbit_reader.erl')
-rw-r--r--src/rabbit_reader.erl20
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(