summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2012-09-11 15:34:53 +0000
committerAlan Conway <aconway@apache.org>2012-09-11 15:34:53 +0000
commit485feb0bbadd5a4404953a1bdaebe7c5eadfe463 (patch)
treea9337eb7bd025ba48c87ad11a2afcbeceb403a27 /cpp/src
parent0dedd6d03fb3c0e1d8bd852ab1d4bd4e5e7d2387 (diff)
downloadqpid-python-485feb0bbadd5a4404953a1bdaebe7c5eadfe463.tar.gz
NO-JIRA: Fix race in Connection, management object deleted while in use.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1383452 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/broker/Connection.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp
index 8890ba45b6..5818759cbe 100644
--- a/cpp/src/qpid/broker/Connection.cpp
+++ b/cpp/src/qpid/broker/Connection.cpp
@@ -138,13 +138,13 @@ void Connection::requestIOProcessing(boost::function0<void> callback)
Connection::~Connection()
{
if (mgmtObject != 0) {
- mgmtObject->resourceDestroy();
// In a cluster, Connections destroyed during shutdown are in
// a cluster-unsafe context. Don't raise an event in that case.
if (!link && isClusterSafe())
agent->raiseEvent(_qmf::EventClientDisconnect(mgmtId, ConnectionState::getUserId(), mgmtObject->get_remoteProperties()));
QPID_LOG_CAT(debug, model, "Delete connection. user:" << ConnectionState::getUserId()
<< " rhost:" << mgmtId );
+ mgmtObject->resourceDestroy();
}
broker.getConnectionObservers().closed(*this);