You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2008/11/20 20:12:21 UTC

svn commit: r719326 - /incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp

Author: tross
Date: Thu Nov 20 11:12:21 2008
New Revision: 719326

URL: http://svn.apache.org/viewvc?rev=719326&view=rev
Log:
Add proper cleanup of stored management objects during agent shutdown.

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp?rev=719326&r1=719325&r2=719326&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp Thu Nov 20 11:12:21 2008
@@ -100,6 +100,20 @@
     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,