From c6774b45a316b499e0593b54a1c088ceca65265a Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 13 May 2014 13:03:08 +0000 Subject: QPID-5758: Move purging of expired messages from timer thread to worker thread git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1594220 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/tests/QueueTest.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'qpid/cpp/src/tests') diff --git a/qpid/cpp/src/tests/QueueTest.cpp b/qpid/cpp/src/tests/QueueTest.cpp index 0fd35a000b..c44483f8dd 100644 --- a/qpid/cpp/src/tests/QueueTest.cpp +++ b/qpid/cpp/src/tests/QueueTest.cpp @@ -40,6 +40,7 @@ #include "qpid/framing/reply_exceptions.h" #include "qpid/broker/QueueFlowLimit.h" #include "qpid/broker/QueueSettings.h" +#include "qpid/sys/Thread.h" #include "qpid/sys/Timer.h" #include @@ -202,18 +203,22 @@ QPID_AUTO_TEST_CASE(testPurgeExpired) { } QPID_AUTO_TEST_CASE(testQueueCleaner) { + boost::shared_ptr poller(new Poller); + Thread runner(poller.get()); Timer timer; QueueRegistry queues; Queue::shared_ptr queue = queues.declare("my-queue", QueueSettings()).first; addMessagesToQueue(10, *queue, 200, 400); BOOST_CHECK_EQUAL(queue->getMessageCount(), 10u); - QueueCleaner cleaner(queues, &timer); + QueueCleaner cleaner(queues, poller, &timer); cleaner.start(100 * qpid::sys::TIME_MSEC); ::usleep(300*1000); BOOST_CHECK_EQUAL(queue->getMessageCount(), 5u); ::usleep(300*1000); BOOST_CHECK_EQUAL(queue->getMessageCount(), 0u); + poller->shutdown(); + runner.join(); } namespace { int getIntProperty(const Message& message, const std::string& key) -- cgit v1.2.1