diff options
author | Alan Conway <aconway@apache.org> | 2008-11-07 20:48:38 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2008-11-07 20:48:38 +0000 |
commit | 0e107c3844c7078cf57212f16b1335dd50d4364c (patch) | |
tree | a62880c89a7b0e3a8cace6b96729fab2de34743e /cpp/src/qpid/broker/PersistableMessage.cpp | |
parent | 15ea1b2572d040cbf62154b075b1e851cc15a22e (diff) | |
download | qpid-python-0e107c3844c7078cf57212f16b1335dd50d4364c.tar.gz |
broker/Message, IncompleteMessageList: drop waitFor(De|En)Complete, replace with callbacks.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@712258 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/PersistableMessage.cpp')
-rw-r--r-- | cpp/src/qpid/broker/PersistableMessage.cpp | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/cpp/src/qpid/broker/PersistableMessage.cpp b/cpp/src/qpid/broker/PersistableMessage.cpp index 920dfd6386..4d272c3780 100644 --- a/cpp/src/qpid/broker/PersistableMessage.cpp +++ b/cpp/src/qpid/broker/PersistableMessage.cpp @@ -63,25 +63,17 @@ void PersistableMessage::setContentReleased() {contentReleased = true; } bool PersistableMessage::isContentReleased()const { return contentReleased; } -void PersistableMessage::waitForEnqueueComplete() { - sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock); - while (asyncEnqueueCounter > 0) { - asyncEnqueueLock.wait(); - } -} - bool PersistableMessage::isEnqueueComplete() { - sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock); + sys::ScopedLock<sys::Mutex> l(asyncEnqueueLock); return asyncEnqueueCounter == 0; } void PersistableMessage::enqueueComplete() { bool notify = false; { - sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock); + sys::ScopedLock<sys::Mutex> l(asyncEnqueueLock); if (asyncEnqueueCounter > 0) { if (--asyncEnqueueCounter == 0) { - asyncEnqueueLock.notify(); notify = true; } } @@ -109,36 +101,28 @@ void PersistableMessage::enqueueAsync(PersistableQueue::shared_ptr queue, Messag } void PersistableMessage::enqueueAsync() { - sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock); + sys::ScopedLock<sys::Mutex> l(asyncEnqueueLock); asyncEnqueueCounter++; } bool PersistableMessage::isDequeueComplete() { - sys::ScopedLock<sys::Monitor> l(asyncDequeueLock); + sys::ScopedLock<sys::Mutex> l(asyncDequeueLock); return asyncDequeueCounter == 0; } void PersistableMessage::dequeueComplete() { bool notify = false; { - sys::ScopedLock<sys::Monitor> l(asyncDequeueLock); + sys::ScopedLock<sys::Mutex> l(asyncDequeueLock); if (asyncDequeueCounter > 0) { if (--asyncDequeueCounter == 0) { notify = true; - asyncDequeueLock.notify(); } } } if (notify) allDequeuesComplete(); } -void PersistableMessage::waitForDequeueComplete() { - sys::ScopedLock<sys::Monitor> l(asyncDequeueLock); - while (asyncDequeueCounter > 0) { - asyncDequeueLock.wait(); - } -} - void PersistableMessage::dequeueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { if (_store){ sys::ScopedLock<sys::Mutex> l(storeLock); @@ -150,7 +134,7 @@ void PersistableMessage::dequeueAsync(PersistableQueue::shared_ptr queue, Messag } void PersistableMessage::dequeueAsync() { - sys::ScopedLock<sys::Monitor> l(asyncDequeueLock); + sys::ScopedLock<sys::Mutex> l(asyncDequeueLock); asyncDequeueCounter++; } |