From 715dcd61baf8d367eeb31c083bf6a9650e829c4c Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 19 Nov 2008 17:12:48 +0000 Subject: Ensure that callbacks are removed before IncompleteMessageList instance is deleted. (also removed commented out line of code from Queue.cpp) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@719012 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/IncompleteMessageList.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'cpp/src/qpid/broker/IncompleteMessageList.cpp') 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 msg) { sys::Mutex::ScopedLock l(lock); -- cgit v1.2.1