diff options
author | Andrew Stitcher <astitcher@apache.org> | 2009-08-07 01:54:12 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2009-08-07 01:54:12 +0000 |
commit | b6bda07c1abd67203bdb75b6eeb4d9b3784a22e5 (patch) | |
tree | 9e626a5ef6e9421788d88834ebf65919d87e6681 /qpid/cpp | |
parent | d75b1f34c306b769daf7aadd9431e7c02e02a34a (diff) | |
download | qpid-python-b6bda07c1abd67203bdb75b6eeb4d9b3784a22e5.tar.gz |
Change QueueCleaner so that it cancels any outstanding TimerTask on destruction
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@801861 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r-- | qpid/cpp/src/qpid/broker/LinkRegistry.cpp | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/QueueCleaner.cpp | 5 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/QueueCleaner.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp index fc7b88a04a..793ffd8d2e 100644 --- a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +++ b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp @@ -68,7 +68,7 @@ void LinkRegistry::Periodic::fire () { links.periodicMaintenance (); setupNextFire(); - links.timer->add (this); + links.timer->add(this); } void LinkRegistry::periodicMaintenance () diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp index 83f3f83520..f21950730d 100644 --- a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +++ b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp @@ -28,6 +28,11 @@ namespace broker { QueueCleaner::QueueCleaner(QueueRegistry& q, sys::Timer& t) : queues(q), timer(t) {} +QueueCleaner::~QueueCleaner() +{ + task->cancel(); +} + void QueueCleaner::start(qpid::sys::Duration p) { task = new Task(*this, p); diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.h b/qpid/cpp/src/qpid/broker/QueueCleaner.h index c351cadd8a..11c2d180ac 100644 --- a/qpid/cpp/src/qpid/broker/QueueCleaner.h +++ b/qpid/cpp/src/qpid/broker/QueueCleaner.h @@ -36,6 +36,7 @@ class QueueCleaner { public: QPID_BROKER_EXTERN QueueCleaner(QueueRegistry& queues, sys::Timer& timer); + QPID_BROKER_EXTERN ~QueueCleaner(); QPID_BROKER_EXTERN void start(qpid::sys::Duration period); private: class Task : public sys::TimerTask |