summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2010-08-13 06:08:40 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2010-08-13 06:08:40 +0100
commit0217c09bdd9e1365135f8f477192571d8605b3bd (patch)
treeb10d65194784a51ca953c4754bbbef07ba3ed6ca
parentec46c466d0f19bd3e8c7476a311d49b9fab8829d (diff)
downloadrabbitmq-server-0217c09bdd9e1365135f8f477192571d8605b3bd.tar.gz
refactor: extract termination Reason analysis
from handle_dependent_exit and wait_for_channel_termination
-rw-r--r--src/rabbit_reader.erl21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index 313b7aaf..1d2dd166 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -470,12 +470,7 @@ handle_channel_exit(Channel, Reason, State) ->
handle_exception(State, Channel, Reason).
handle_dependent_exit(ChSupPid, Reason, State) ->
- case (case Reason of
- normal -> controlled;
- shutdown -> controlled;
- {shutdown, _Term} -> controlled;
- _ -> uncontrolled
- end) of
+ case termination_kind(Reason) of
controlled ->
case erase({ch_sup_pid, ChSupPid}) of
undefined -> ok;
@@ -529,11 +524,10 @@ wait_for_channel_termination(N, TimerRef) ->
undefined ->
exit({abnormal_dependent_exit, ChSupPid, Reason});
Channel ->
- case Reason of
- normal -> ok;
- shutdown -> ok;
- {shutdown, _Term} -> ok;
- _ ->
+ case termination_kind(Reason) of
+ controlled ->
+ ok;
+ uncontrolled ->
rabbit_log:error(
"connection ~p, channel ~p - "
"error while terminating:~n~p~n",
@@ -558,6 +552,11 @@ maybe_close(State = #v1{connection_state = closing,
maybe_close(State) ->
State.
+termination_kind(normal) -> controlled;
+termination_kind(shutdown) -> controlled;
+termination_kind({shutdown, _Term}) -> controlled;
+termination_kind(_) -> uncontrolled.
+
handle_frame(Type, 0, Payload,
State = #v1{connection_state = CS,
connection = #connection{protocol = Protocol}})