summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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