diff options
| author | Alan Conway <aconway@apache.org> | 2008-10-17 16:45:24 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-10-17 16:45:24 +0000 |
| commit | 7db0c0970eac260626263314c30f0e20d4ef6c21 (patch) | |
| tree | 231024436b5b7185f63972d90318acce97816c22 /cpp/src/qpid/client/ConnectionImpl.cpp | |
| parent | a039e57108ed06586e73a255dc824ed27fc6de2a (diff) | |
| download | qpid-python-7db0c0970eac260626263314c30f0e20d4ef6c21.tar.gz | |
QPID-1367 Mick Goulish: improvements to client-side failover.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@705668 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client/ConnectionImpl.cpp')
| -rw-r--r-- | cpp/src/qpid/client/ConnectionImpl.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cpp/src/qpid/client/ConnectionImpl.cpp b/cpp/src/qpid/client/ConnectionImpl.cpp index 652d59f448..92cf756580 100644 --- a/cpp/src/qpid/client/ConnectionImpl.cpp +++ b/cpp/src/qpid/client/ConnectionImpl.cpp @@ -151,8 +151,11 @@ void ConnectionImpl::closed(uint16_t code, const std::string& text) { static const std::string CONN_CLOSED("Connection closed by broker"); void ConnectionImpl::shutdown() { - Mutex::ScopedLock l(lock); + + if ( failureCallback ) + failureCallback(); + if (handler.isClosed()) return; // FIXME aconway 2008-06-06: exception use, amqp0-10 does not seem to have @@ -161,9 +164,6 @@ void ConnectionImpl::shutdown() { closeInternal(boost::bind(&SessionImpl::connectionBroke, _1, CLOSE_CODE_CONNECTION_FORCED, CONN_CLOSED)); setException(new ConnectionException(CLOSE_CODE_CONNECTION_FORCED, CONN_CLOSED)); handler.fail(CONN_CLOSED); - - if ( failureCallback ) - failureCallback(); } void ConnectionImpl::erase(uint16_t ch) { |
