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;