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