diff options
| author | Gordon Sim <gsim@apache.org> | 2014-11-05 10:33:59 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2014-11-05 10:33:59 +0000 |
| commit | d942858418286c716b0dac33b888a3f4b994ea41 (patch) | |
| tree | cd72e6c09f5b5f75df2253f86ed1013bb3f7e9b5 /qpid/cpp | |
| parent | a98acc0623cba6643e94c3e7bbaee67a955e7b98 (diff) | |
| download | qpid-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.cpp | 9 |
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(); } |
