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
commit03fbf27d2f43a039263cf04448951e49d4c21f1c (patch)
treea9337eb7bd025ba48c87ad11a2afcbeceb403a27 /cpp/src
parent004a58e535b5b8ace683d59071e0a5dd27f822a8 (diff)
downloadqpid-python-03fbf27d2f43a039263cf04448951e49d4c21f1c.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);