[rhmessaging-commits] rhmessaging commits: r1828 - store/trunk/cpp/lib.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Apr 1 16:18:44 EDT 2008


Author: kpvdr
Date: 2008-04-01 16:18:44 -0400 (Tue, 01 Apr 2008)
New Revision: 1828

Modified:
   store/trunk/cpp/lib/JournalImpl.cpp
   store/trunk/cpp/lib/JournalImpl.h
Log:
Fixed the memory leak fix...

Modified: store/trunk/cpp/lib/JournalImpl.cpp
===================================================================
--- store/trunk/cpp/lib/JournalImpl.cpp	2008-04-01 19:04:26 UTC (rev 1827)
+++ store/trunk/cpp/lib/JournalImpl.cpp	2008-04-01 20:18:44 UTC (rev 1828)
@@ -34,6 +34,7 @@
 using namespace rhm::journal;
 
 qpid::broker::Timer* JournalImpl::journalTimerPtr = 0;
+u_int32_t JournalImpl::cnt = 0;
 
 void InactivityFireEvent::fire() { if (parent) parent->flushFire(); }
 void GetEventsFireEvent::fire() {
@@ -64,6 +65,7 @@
     if (journalTimerPtr == 0)
         journalTimerPtr = new qpid::broker::Timer;
     assert (journalTimerPtr != 0);
+    cnt++;
     journalTimerPtr->start();
     journalTimerPtr->add(inactivityFireEventPtr);
 
@@ -98,7 +100,7 @@
         ::free(_datap);
         _datap = 0;
     }
-    if (journalTimerPtr)
+    if (journalTimerPtr && --cnt == 0)
     {
         delete journalTimerPtr;
         journalTimerPtr = 0;

Modified: store/trunk/cpp/lib/JournalImpl.h
===================================================================
--- store/trunk/cpp/lib/JournalImpl.h	2008-04-01 19:04:26 UTC (rev 1827)
+++ store/trunk/cpp/lib/JournalImpl.h	2008-04-01 20:18:44 UTC (rev 1828)
@@ -33,6 +33,7 @@
 #include <qpid/sys/Time.h>
 #include <boost/ptr_container/ptr_list.hpp>
 #include <boost/intrusive_ptr.hpp>
+#include <boost/shared_ptr.hpp>
 
 namespace rhm {
     namespace bdbstore {
@@ -67,6 +68,7 @@
         {            
         private:
             static qpid::broker::Timer* journalTimerPtr;
+            static u_int32_t cnt;
 
             bool getEventsTimerSetFlag;
             boost::intrusive_ptr<qpid::broker::TimerTask> getEventsFireEventsPtr;




More information about the rhmessaging-commits mailing list