OW_NAMESPACE::RWLocker Class Reference

#include <OW_RWLocker.hpp>

Collaboration diagram for OW_NAMESPACE::RWLocker:

Collaboration graph
[legend]
List of all members.

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_tm_readers
Thread_t m_writer

Detailed Description

Definition at line 49 of file OW_RWLocker.hpp.


Constructor & Destructor Documentation

OW_NAMESPACE::RWLocker::RWLocker  ) 
 

Definition at line 48 of file OW_RWLocker.cpp.

OW_NAMESPACE::RWLocker::~RWLocker  ) 
 

Definition at line 59 of file OW_RWLocker.cpp.


Member Function Documentation

void OW_NAMESPACE::RWLocker::doWakeups  )  [private]
 

Definition at line 188 of file OW_RWLocker.cpp.

References m_num_waiting_readers, m_num_waiting_writers, m_readers_next, m_waiting_readers, m_waiting_writers, OW_NAMESPACE::Condition::notifyAll(), and OW_NAMESPACE::Condition::notifyOne().

Referenced by releaseReadLock(), and releaseWriteLock().

void OW_NAMESPACE::RWLocker::getReadLock UInt32  sTimeout,
UInt32  usTimeout = 0
 

Definition at line 73 of file OW_RWLocker.cpp.

References OW_NAMESPACE::ThreadImpl::currentThread(), m_guard, m_num_waiting_readers, m_state, m_waiting_readers, m_writer, OW_THROW, OW_NAMESPACE::ThreadImpl::sameThreads(), and OW_NAMESPACE::Condition::timedWait().

void OW_NAMESPACE::RWLocker::getWriteLock UInt32  sTimeout,
UInt32  usTimeout = 0
 

Definition at line 109 of file OW_RWLocker.cpp.

References OW_NAMESPACE::ThreadImpl::currentThread(), i, m_guard, m_readers, m_state, OW_THROW, OW_NAMESPACE::ThreadImpl::sameThreads(), and OW_NAMESPACE::Array< T >::size().

void OW_NAMESPACE::RWLocker::releaseReadLock  ) 
 

Definition at line 144 of file OW_RWLocker.cpp.

References OW_NAMESPACE::ThreadImpl::currentThread(), doWakeups(), i, m_guard, m_readers, m_state, OW_THROW, OW_NAMESPACE::Array< T >::remove(), OW_NAMESPACE::ThreadImpl::sameThreads(), and OW_NAMESPACE::Array< T >::size().

void OW_NAMESPACE::RWLocker::releaseWriteLock  ) 
 

Definition at line 171 of file OW_RWLocker.cpp.

References doWakeups(), m_guard, m_state, and OW_THROW.


Member Data Documentation

NonRecursiveMutex OW_NAMESPACE::RWLocker::m_guard [private]
 

Definition at line 67 of file OW_RWLocker.hpp.

Referenced by getReadLock(), getWriteLock(), releaseReadLock(), and releaseWriteLock().

int OW_NAMESPACE::RWLocker::m_num_waiting_readers [private]
 

Definition at line 64 of file OW_RWLocker.hpp.

Referenced by doWakeups(), and getReadLock().

int OW_NAMESPACE::RWLocker::m_num_waiting_writers [private]
 

Definition at line 63 of file OW_RWLocker.hpp.

Referenced by doWakeups().

Array<Thread_t> OW_NAMESPACE::RWLocker::m_readers [private]
 

Definition at line 77 of file OW_RWLocker.hpp.

Referenced by getWriteLock(), and releaseReadLock().

int OW_NAMESPACE::RWLocker::m_readers_next [private]
 

Definition at line 65 of file OW_RWLocker.hpp.

Referenced by doWakeups().

int OW_NAMESPACE::RWLocker::m_state [private]
 

Definition at line 70 of file OW_RWLocker.hpp.

Referenced by getReadLock(), getWriteLock(), releaseReadLock(), and releaseWriteLock().

Condition OW_NAMESPACE::RWLocker::m_waiting_readers [private]
 

Definition at line 61 of file OW_RWLocker.hpp.

Referenced by doWakeups(), and getReadLock().

Condition OW_NAMESPACE::RWLocker::m_waiting_writers [private]
 

Definition at line 60 of file OW_RWLocker.hpp.

Referenced by doWakeups().

Thread_t OW_NAMESPACE::RWLocker::m_writer [private]
 

Definition at line 83 of file OW_RWLocker.hpp.

Referenced by getReadLock().


The documentation for this class was generated from the following files:
Generated on Thu Feb 9 09:14:21 2006 for openwbem by  doxygen 1.4.6