summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/IncompleteMessageList.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-11-19 17:12:48 +0000
committerGordon Sim <gsim@apache.org>2008-11-19 17:12:48 +0000
commit715dcd61baf8d367eeb31c083bf6a9650e829c4c (patch)
treea1b46b6272a19e3f9bb47678ba5f4264f424c45d /cpp/src/qpid/broker/IncompleteMessageList.cpp
parente1cc77fda58a22b4d74e19688c0247ce1735ee39 (diff)
downloadqpid-python-715dcd61baf8d367eeb31c083bf6a9650e829c4c.tar.gz
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
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);