Page Speed Optimization Libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
net_instaweb::CheckingThreadSystem::RWLock Class Reference

#include "checking_thread_system.h"

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

Public Member Functions

 RWLock (ThreadSystem::RWLock *lock)
virtual bool TryLock () EXCLUSIVE_TRYLOCK_FUNCTION(true)
 Attempt to take mutex, true on success, false if held by another thread.
virtual void Lock () EXCLUSIVE_LOCK_FUNCTION()
 Block until mutex is available, then take the mutex.
virtual void Unlock () UNLOCK_FUNCTION()
 Release the mutex, permitting a blocked lock operation (if any) to proceed.
virtual bool ReaderTryLock () SHARED_TRYLOCK_FUNCTION(true)
virtual void ReaderLock () SHARED_LOCK_FUNCTION()
 Block until this Mutex is free, or shared, then acquire a share of it.
virtual void ReaderUnlock () UNLOCK_FUNCTION()
 Release a read share of this Mutex.
virtual void DCheckLocked ()
 This implementation of DCheckLocked CHECK-fails if lock is not held.
virtual void DCheckReaderLocked ()
- Public Member Functions inherited from net_instaweb::AbstractMutex
virtual void DCheckUnlocked ()

Detailed Description

We also expose CheckingThreadSystem::RWLock, which wraps a RWLock to provide read/write capable locks. This class can be used to wrap unchecked mutexes provided by other CheckingThreadSystems.

Member Function Documentation

virtual void net_instaweb::CheckingThreadSystem::RWLock::DCheckReaderLocked ( )

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

Reimplemented from net_instaweb::ThreadSystem::RWLock.

virtual bool net_instaweb::CheckingThreadSystem::RWLock::ReaderTryLock ( )

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. Try to acquire a read share of this lock without blocking.

Implements net_instaweb::ThreadSystem::RWLock.

The documentation for this class was generated from the following file: