summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2014-11-05 10:33:59 +0000
committerGordon Sim <gsim@apache.org>2014-11-05 10:33:59 +0000
commitd942858418286c716b0dac33b888a3f4b994ea41 (patch)
treecd72e6c09f5b5f75df2253f86ed1013bb3f7e9b5 /qpid/cpp
parenta98acc0623cba6643e94c3e7bbaee67a955e7b98 (diff)
downloadqpid-python-d942858418286c716b0dac33b888a3f4b994ea41.tar.gz
QPID-6213: only restart timer once all queues have been purged
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1636848 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/broker/QueueCleaner.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp
index 8ae733a1ff..b252c1e8be 100644
--- a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp
+++ b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp
@@ -74,6 +74,7 @@ void QueueCleaner::setTimer(qpid::sys::Timer* timer) {
void QueueCleaner::fired()
{
queues.eachQueue(boost::bind(&PurgeSet::push, &purging, _1));
+ QPID_LOG(debug, "Requested purge of queues");
}
QueueCleaner::QueuePtrs::const_iterator QueueCleaner::purge(const QueueCleaner::QueuePtrs& batch)
@@ -81,8 +82,12 @@ QueueCleaner::QueuePtrs::const_iterator QueueCleaner::purge(const QueueCleaner::
for (QueuePtrs::const_iterator i = batch.begin(); i != batch.end(); ++i) {
(*i)->purgeExpired(period);
}
- task->restart();
- timer->add(task);
+ QPID_LOG(debug, "Purged " << batch.size() << " queues");
+ if (purging.empty()) {
+ task->restart();
+ timer->add(task);
+ QPID_LOG(debug, "Restarted purge timer");
+ }
return batch.end();
}