Author: astitcher
Date: 2009-08-07 14:16:41 -0400 (Fri, 07 Aug 2009)
New Revision: 3553
Modified:
store/trunk/cpp/lib/JournalImpl.cpp
store/trunk/cpp/lib/JournalImpl.h
Log:
Change store to use the sys::Timer API instead of the broker::Timer one in preparation
for removing broker::Timer
Modified: store/trunk/cpp/lib/JournalImpl.cpp
===================================================================
--- store/trunk/cpp/lib/JournalImpl.cpp 2009-08-07 15:28:42 UTC (rev 3552)
+++ store/trunk/cpp/lib/JournalImpl.cpp 2009-08-07 18:16:41 UTC (rev 3553)
@@ -40,7 +40,7 @@
using qpid::management::ManagementAgent;
namespace _qmf = qmf::com::redhat::rhm::store;
-qpid::broker::Timer* JournalImpl::journalTimerPtr = 0;
+qpid::sys::Timer* JournalImpl::journalTimerPtr = 0;
u_int32_t JournalImpl::cnt = 0;
void InactivityFireEvent::fire() { slock s(&_ife_mutex); if (parent)
parent->flushFire(); }
@@ -70,7 +70,7 @@
getEventsFireEventsPtr = new GetEventsFireEvent(this, getEventsTimeout);
inactivityFireEventPtr = new InactivityFireEvent(this, flushTimeout);
if (journalTimerPtr == 0)
- journalTimerPtr = new qpid::broker::Timer;
+ journalTimerPtr = new qpid::sys::Timer;
assert (journalTimerPtr != 0);
cnt++;
journalTimerPtr->start();
@@ -109,8 +109,8 @@
try { stop(true); } // NOTE: This will *block* until all outstanding disk aio calls
are complete!
catch (const jexception& e) { log(LOG_ERROR, e.what()); }
}
-
(dynamic_cast<GetEventsFireEvent*>(getEventsFireEventsPtr.get()))->cancel();
-
(dynamic_cast<InactivityFireEvent*>(inactivityFireEventPtr.get()))->cancel();
+ getEventsFireEventsPtr->cancel();
+ inactivityFireEventPtr->cancel();
free_read_buffers();
// TODO: Make this if() thread-safe
@@ -533,7 +533,7 @@
flushTriggeredFlag = true;
}
}
- inactivityFireEventPtr->reset();
+ inactivityFireEventPtr->setupNextFire();
assert(journalTimerPtr != 0);
journalTimerPtr->add(inactivityFireEventPtr);
}
Modified: store/trunk/cpp/lib/JournalImpl.h
===================================================================
--- store/trunk/cpp/lib/JournalImpl.h 2009-08-07 15:28:42 UTC (rev 3552)
+++ store/trunk/cpp/lib/JournalImpl.h 2009-08-07 18:16:41 UTC (rev 3553)
@@ -30,8 +30,8 @@
#include "jrnl/slock.hpp"
#include "DataTokenImpl.h"
#include "PreparedTransaction.h"
-#include <qpid/broker/Timer.h>
#include <qpid/broker/PersistableQueue.h>
+#include <qpid/sys/Timer.h>
#include <qpid/sys/Time.h>
#include <boost/ptr_container/ptr_list.hpp>
#include <boost/intrusive_ptr.hpp>
@@ -43,27 +43,27 @@
class JournalImpl;
- class InactivityFireEvent : public virtual qpid::broker::TimerTask
+ class InactivityFireEvent : public qpid::sys::TimerTask
{
JournalImpl* parent;
pthread_mutex_t _ife_mutex;
public:
InactivityFireEvent(JournalImpl* p, const qpid::sys::Duration timeout):
- qpid::broker::TimerTask(timeout), parent(p) {
::pthread_mutex_init(&_ife_mutex, 0); }
+ qpid::sys::TimerTask(timeout), parent(p) {
::pthread_mutex_init(&_ife_mutex, 0); }
virtual ~InactivityFireEvent() { ::pthread_mutex_destroy(&_ife_mutex); }
void fire();
inline void cancel() { mrg::journal::slock s(&_ife_mutex); parent = 0; }
};
- class GetEventsFireEvent : public virtual qpid::broker::TimerTask
+ class GetEventsFireEvent : public qpid::sys::TimerTask
{
JournalImpl* parent;
pthread_mutex_t _gefe_mutex;
public:
GetEventsFireEvent(JournalImpl* p, const qpid::sys::Duration timeout):
- qpid::broker::TimerTask(timeout), parent(p) {
::pthread_mutex_init(&_gefe_mutex, 0); }
+ qpid::sys::TimerTask(timeout), parent(p) {
::pthread_mutex_init(&_gefe_mutex, 0); }
virtual ~GetEventsFireEvent() { ::pthread_mutex_destroy(&_gefe_mutex); }
void fire();
inline void cancel() { mrg::journal::slock s(&_gefe_mutex); parent = 0;
}
@@ -72,18 +72,18 @@
class JournalImpl : public qpid::broker::ExternalQueueStore, public
mrg::journal::jcntl, public mrg::journal::aio_callback
{
private:
- static qpid::broker::Timer* journalTimerPtr;
+ static qpid::sys::Timer* journalTimerPtr;
static u_int32_t cnt;
bool getEventsTimerSetFlag;
- boost::intrusive_ptr<qpid::broker::TimerTask> getEventsFireEventsPtr;
+ boost::intrusive_ptr<qpid::sys::TimerTask> getEventsFireEventsPtr;
pthread_mutex_t _getf_mutex;
u_int64_t lastReadRid; // rid of last read msg for loadMsgContent()
bool writeActivityFlag;
bool flushTriggeredFlag;
- boost::intrusive_ptr<qpid::broker::TimerTask> inactivityFireEventPtr;
+ boost::intrusive_ptr<qpid::sys::TimerTask> inactivityFireEventPtr;
// temp local vars for loadMsgContent below
void* _xidp;
@@ -211,6 +211,7 @@
inline void setGetEventTimer()
{
assert(journalTimerPtr != 0);
+ getEventsFireEventsPtr->setupNextFire();
journalTimerPtr->add(getEventsFireEventsPtr);
getEventsTimerSetFlag = true;
}
Show replies by date