summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
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,