From e2b079386b19c34a26bb4a7c67bd002ebb9bdc94 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 18 Sep 2008 13:55:30 +0000 Subject: Refactor Cluster logic into separate handlers for Joining & Member modes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@696657 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/sys/PollableQueue.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/sys') diff --git a/cpp/src/qpid/sys/PollableQueue.h b/cpp/src/qpid/sys/PollableQueue.h index ca97c0d8c9..2c326b998f 100644 --- a/cpp/src/qpid/sys/PollableQueue.h +++ b/cpp/src/qpid/sys/PollableQueue.h @@ -71,6 +71,9 @@ class PollableQueue { /** Stop polling and wait for the current callback, if any, to complete. */ void stop(); + + /** Are we currently stopped?*/ + bool isStopped() const; private: typedef sys::Monitor::ScopedLock ScopedLock; @@ -78,7 +81,7 @@ class PollableQueue { void dispatch(sys::DispatchHandle&); - sys::Monitor lock; + mutable sys::Monitor lock; Callback callback; PollableCondition condition; sys::DispatchHandle handle; @@ -130,6 +133,11 @@ template void PollableQueue::stop() { while (dispatching) lock.wait(); } +template bool PollableQueue::isStopped() const { + ScopedLock l(lock); + return stopped; +} + }} // namespace qpid::sys #endif /*!QPID_SYS_POLLABLEQUEUE_H*/ -- cgit v1.2.1