summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/IncompleteMessageList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/IncompleteMessageList.cpp')
-rw-r--r--cpp/src/qpid/broker/IncompleteMessageList.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/IncompleteMessageList.cpp b/cpp/src/qpid/broker/IncompleteMessageList.cpp
index bfa7b5dd62..26c7a83d2f 100644
--- a/cpp/src/qpid/broker/IncompleteMessageList.cpp
+++ b/cpp/src/qpid/broker/IncompleteMessageList.cpp
@@ -28,6 +28,12 @@ IncompleteMessageList::IncompleteMessageList() :
callback(boost::bind(&IncompleteMessageList::enqueueComplete, this, _1))
{}
+IncompleteMessageList::~IncompleteMessageList()
+{
+ sys::Mutex::ScopedLock l(lock);
+ std::for_each(incomplete.begin(), incomplete.end(), boost::bind(&Message::resetEnqueueCompleteCallback, _1));
+}
+
void IncompleteMessageList::add(boost::intrusive_ptr<Message> msg)
{
sys::Mutex::ScopedLock l(lock);