#include <RWLocker.hpp>
Public Member Functions | |
| RWLocker () | |
| ~RWLocker () | |
| void | getReadLock (UInt32 sTimeout, UInt32 usTimeout=0) |
| void | getWriteLock (UInt32 sTimeout, UInt32 usTimeout=0) |
| void | releaseReadLock () |
| void | releaseWriteLock () |
Private Member Functions | |
| void | doWakeups () |
Private Attributes | |
| Condition | m_waiting_writers |
| Condition | m_waiting_readers |
| int | m_num_waiting_writers |
| int | m_num_waiting_readers |
| int | m_readers_next |
| NonRecursiveMutex | m_guard |
| int | m_state |
| Array< Thread_t > | m_readers |
| Thread_t | m_writer |
Definition at line 51 of file RWLocker.hpp.
| BLOCXX_NAMESPACE::RWLocker::RWLocker | ( | ) |
Definition at line 50 of file RWLocker.cpp.
| BLOCXX_NAMESPACE::RWLocker::~RWLocker | ( | ) |
Definition at line 61 of file RWLocker.cpp.
Definition at line 75 of file RWLocker.cpp.
References BLOCXX_THROW, BLOCXX_NAMESPACE::ThreadImpl::currentThread(), m_guard, m_num_waiting_readers, m_readers, m_state, m_waiting_readers, m_writer, BLOCXX_NAMESPACE::ThreadImpl::sameThreads(), and BLOCXX_NAMESPACE::Condition::timedWait().
Definition at line 111 of file RWLocker.cpp.
References BLOCXX_THROW, BLOCXX_NAMESPACE::ThreadImpl::currentThread(), i, m_guard, m_num_waiting_writers, m_readers, m_state, m_waiting_writers, m_writer, BLOCXX_NAMESPACE::ThreadImpl::sameThreads(), and BLOCXX_NAMESPACE::Condition::timedWait().
| void BLOCXX_NAMESPACE::RWLocker::releaseReadLock | ( | ) |
Definition at line 146 of file RWLocker.cpp.
References BLOCXX_THROW, BLOCXX_NAMESPACE::ThreadImpl::currentThread(), doWakeups(), i, m_guard, m_readers, m_state, and BLOCXX_NAMESPACE::ThreadImpl::sameThreads().
| void BLOCXX_NAMESPACE::RWLocker::releaseWriteLock | ( | ) |
Definition at line 173 of file RWLocker.cpp.
References BLOCXX_THROW, doWakeups(), m_guard, and m_state.
| void BLOCXX_NAMESPACE::RWLocker::doWakeups | ( | ) | [private] |
Definition at line 190 of file RWLocker.cpp.
References m_num_waiting_readers, m_num_waiting_writers, m_readers_next, m_waiting_readers, m_waiting_writers, BLOCXX_NAMESPACE::Condition::notifyAll(), and BLOCXX_NAMESPACE::Condition::notifyOne().
Referenced by releaseReadLock(), and releaseWriteLock().
int BLOCXX_NAMESPACE::RWLocker::m_num_waiting_writers [private] |
int BLOCXX_NAMESPACE::RWLocker::m_num_waiting_readers [private] |
int BLOCXX_NAMESPACE::RWLocker::m_readers_next [private] |
Definition at line 69 of file RWLocker.hpp.
Referenced by getReadLock(), getWriteLock(), releaseReadLock(), and releaseWriteLock().
int BLOCXX_NAMESPACE::RWLocker::m_state [private] |
Definition at line 72 of file RWLocker.hpp.
Referenced by getReadLock(), getWriteLock(), releaseReadLock(), and releaseWriteLock().
Array<Thread_t> BLOCXX_NAMESPACE::RWLocker::m_readers [private] |
Definition at line 79 of file RWLocker.hpp.
Referenced by getReadLock(), getWriteLock(), and releaseReadLock().
Thread_t BLOCXX_NAMESPACE::RWLocker::m_writer [private] |
1.5.3