summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2009-08-07 01:53:56 +0000
committerAndrew Stitcher <astitcher@apache.org>2009-08-07 01:53:56 +0000
commit776a1c00abbbceac0dadcd1e2bf7c7c942967853 (patch)
treebee087e50c0e85f356f7eb500a8650979b817e3d /cpp/src
parentdb71c1d728864e41d8be7c5c91c0a7e84940284c (diff)
downloadqpid-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.cpp2
-rw-r--r--cpp/src/qpid/broker/QueueCleaner.cpp5
-rw-r--r--cpp/src/qpid/broker/QueueCleaner.h1
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