You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2008/06/06 00:01:33 UTC
svn commit: r663755 -
/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
Author: tross
Date: Thu Jun 5 15:01:32 2008
New Revision: 663755
URL: http://svn.apache.org/viewvc?rev=663755&view=rev
Log:
Dequeue persistent messages from store in queue purge
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=663755&r1=663754&r2=663755&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Thu Jun 5 15:01:32 2008
@@ -387,7 +387,15 @@
uint32_t Queue::purge(){
Mutex::ScopedLock locker(messageLock);
int count = messages.size();
- while(!messages.empty()) pop();
+ while(!messages.empty()) {
+ QueuedMessage& msg = messages.front();
+ if (store && msg.payload->isPersistent()) {
+ boost::intrusive_ptr<PersistableMessage> pmsg =
+ boost::static_pointer_cast<PersistableMessage>(msg.payload);
+ store->dequeue(0, pmsg, *this);
+ }
+ pop();
+ }
return count;
}