summaryrefslogtreecommitdiff
path: root/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
commit47cbb850a3c4816042f825059127759820d2a8f4 (patch)
tree1dd3c1303ed9988269deff187dee4af7d57df86a /cpp/src
parent24f410931d76bc37dd575436a7b11a87b6aef0c9 (diff)
downloadqpid-python-47cbb850a3c4816042f825059127759820d2a8f4.tar.gz
Add proper cleanup of stored management objects during agent shutdown.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@719326 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/agent/ManagementAgentImpl.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/cpp/src/qpid/agent/ManagementAgentImpl.cpp
index 173785a671..dc9122664d 100644
--- a/cpp/src/qpid/agent/ManagementAgentImpl.cpp
+++ b/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,