diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2010-08-13 06:08:40 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2010-08-13 06:08:40 +0100 |
commit | 0217c09bdd9e1365135f8f477192571d8605b3bd (patch) | |
tree | b10d65194784a51ca953c4754bbbef07ba3ed6ca | |
parent | ec46c466d0f19bd3e8c7476a311d49b9fab8829d (diff) | |
download | rabbitmq-server-0217c09bdd9e1365135f8f477192571d8605b3bd.tar.gz |
refactor: extract termination Reason analysis
from handle_dependent_exit and wait_for_channel_termination
-rw-r--r-- | src/rabbit_reader.erl | 21 |
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}}) |