net_instaweb::ThreadSystem::RWLock Class Reference

#include "thread_system.h"

Inheritance diagram for net_instaweb::ThreadSystem::RWLock:
net_instaweb::AbstractMutex net_instaweb::CheckingThreadSystem::RWLock net_instaweb::NullRWLock net_instaweb::PthreadRWLock

List of all members.

Public Member Functions

virtual void ReaderLock ()=0
virtual void ReaderUnlock ()=0
 Release a read share of this Mutex.
virtual void DCheckReaderLocked ()

Detailed Description

Interface for a Mutex with ReaderLocks(). It is possible for multiple Readers to simultaneously hold an RWLock. A reader cannot hold the lock at the same time as a Writer, nor can two Writers hold the lock.


Member Function Documentation

virtual void net_instaweb::ThreadSystem::RWLock::DCheckReaderLocked (  )  [virtual]

Optionally checks that reader lock is held (for invariant checking purposes). Default implementation does no checking.

Reimplemented in net_instaweb::CheckingThreadSystem::RWLock, and net_instaweb::NullRWLock.

virtual void net_instaweb::ThreadSystem::RWLock::ReaderLock (  )  [pure virtual]

ReaderLock/Unlock are different from normal locks. Reader locks are shared while normal locks are exclusive. Normal lock cannot happen when reader has a lock. Block until this Mutex is free, or shared, then acquire a share of it.

Implemented in net_instaweb::CheckingThreadSystem::RWLock, net_instaweb::NullRWLock, and net_instaweb::PthreadRWLock.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Tue May 29 16:34:21 2012 for Page Speed Optimization Libraries by  doxygen 1.6.3