diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2011-02-07 11:42:35 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2011-02-07 11:42:35 +0000 |
commit | e57589d51a18a7128ce2c26a4313b2ad4bac7e32 (patch) | |
tree | 04d189cd94826cbb65a6d8c7e5f97d3086b7d5e5 /src | |
parent | 709ed272ed055c1a6473f577cfffe772d040c55a (diff) | |
parent | ee08297297f7a1976dc8efbeccdb6e15370c4c5d (diff) | |
download | rabbitmq-server-e57589d51a18a7128ce2c26a4313b2ad4bac7e32.tar.gz |
Merge bug 23061 into default (spurious heartbeat timeouts possible during connection termination)
Diffstat (limited to 'src')
-rw-r--r-- | src/rabbit_reader.erl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index b5d82ac2..76d392f9 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -357,7 +357,11 @@ mainloop(Deb, State = #v1{parent = Parent, sock= Sock, recv_ref = Ref}) -> throw({handshake_timeout, State#v1.callback}) end; timeout -> - throw({timeout, State#v1.connection_state}); + ConnectionState = State#v1.connection_state, + case ConnectionState of + closed -> mainloop(Deb, State); + _ -> throw({timeout, ConnectionState}) + end; {'$gen_call', From, {shutdown, Explanation}} -> {ForceTermination, NewState} = terminate(Explanation, State), gen_server:reply(From, ok), |