summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-11-20 19:12:21 +0000
committerTed Ross <tross@apache.org>2008-11-20 19:12:21 +0000
commit3b1f2cb926d12a6edc01e21bb0310fd37045e7b1 (patch)
tree1e4e817cf400ab38450cfa6c553c14dc102b7896 /qpid/cpp/src
parent0cdcacbde62dcf407c6a84478033a16302e05e43 (diff)
downloadqpid-python-3b1f2cb926d12a6edc01e21bb0310fd37045e7b1.tar.gz
Add proper cleanup of stored management objects during agent shutdown.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@719326 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
index 173785a671..dc9122664d 100644
--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
+++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
@@ -100,6 +100,20 @@ ManagementAgentImpl::~ManagementAgentImpl()
if (!connThreadBody.isSleeping()) {
connThread.join();
}
+
+ // Release the memory associated with stored management objects.
+ {
+ Mutex::ScopedLock lock(agentLock);
+
+ moveNewObjectsLH();
+ for (ManagementObjectMap::iterator iter = managementObjects.begin ();
+ iter != managementObjects.end ();
+ iter++) {
+ ManagementObject* object = iter->second;
+ delete object;
+ }
+ managementObjects.clear();
+ }
}
void ManagementAgentImpl::init(const string& brokerHost,