diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2009-08-07 01:53:56 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2009-08-07 01:53:56 +0000 |
| commit | 776a1c00abbbceac0dadcd1e2bf7c7c942967853 (patch) | |
| tree | bee087e50c0e85f356f7eb500a8650979b817e3d /cpp/src | |
| parent | db71c1d728864e41d8be7c5c91c0a7e84940284c (diff) | |
| download | qpid-python-776a1c00abbbceac0dadcd1e2bf7c7c942967853.tar.gz | |
Change QueueCleaner so that it cancels any outstanding TimerTask on destruction
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@801861 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
| -rw-r--r-- | cpp/src/qpid/broker/LinkRegistry.cpp | 2 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/QueueCleaner.cpp | 5 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/QueueCleaner.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/LinkRegistry.cpp b/cpp/src/qpid/broker/LinkRegistry.cpp index fc7b88a04a..793ffd8d2e 100644 --- a/cpp/src/qpid/broker/LinkRegistry.cpp +++ b/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/cpp/src/qpid/broker/QueueCleaner.cpp b/cpp/src/qpid/broker/QueueCleaner.cpp index 83f3f83520..f21950730d 100644 --- a/cpp/src/qpid/broker/QueueCleaner.cpp +++ b/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/cpp/src/qpid/broker/QueueCleaner.h b/cpp/src/qpid/broker/QueueCleaner.h index c351cadd8a..11c2d180ac 100644 --- a/cpp/src/qpid/broker/QueueCleaner.h +++ b/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 |
