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 | 553d47d65ec42e7b92ece353a60a7c14110ea2c1 (patch) | |
| tree | 04d189cd94826cbb65a6d8c7e5f97d3086b7d5e5 | |
| parent | 77ba4b3dd4a52307c73002aa201c0e444f14416d (diff) | |
| parent | 845a759f8993fe6faa66d8ddadfb20e8a1aad31c (diff) | |
| download | rabbitmq-server-git-553d47d65ec42e7b92ece353a60a7c14110ea2c1.tar.gz | |
Merge bug 23061 into default (spurious heartbeat timeouts possible during connection termination)
| -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 b5d82ac230..76d392f996 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), |
