PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PWriteWaitAndSignal Class Reference

This class starts a write operation for the PReadWriteMutex on construction and automatically ends the write operation on destruction. More...

#include <syncthrd.h>

Inheritance diagram for PWriteWaitAndSignal:
Collaboration diagram for PWriteWaitAndSignal:

Public Member Functions

 PWriteWaitAndSignal (const PReadWriteMutex &mutex, PBoolean start=true)
 Create the PWriteWaitAndSignal wait instance. More...
 
- Public Member Functions inherited from PReadWriteWaitAndSignalBase
 ~PReadWriteWaitAndSignalBase ()
 

Additional Inherited Members

- Protected Types inherited from PReadWriteWaitAndSignalBase
typedef void(PReadWriteMutex::* StartFn )(const PDebugLocation *location)
 
typedef void(PReadWriteMutex::* EndFn )(const PDebugLocation *location)
 
- Protected Member Functions inherited from PReadWriteWaitAndSignalBase
 PReadWriteWaitAndSignalBase (const PReadWriteMutex &mutex, const PDebugLocation *location, StartFn start, EndFn end)
 
- Protected Attributes inherited from PReadWriteWaitAndSignalBase
PReadWriteMutexm_mutex
 
PDebugLocation m_location
 
EndFn m_end
 

Detailed Description

This class starts a write operation for the PReadWriteMutex on construction and automatically ends the write operation on destruction.

This is very useful for constructs such as:


    void func()
    {
      PWriteWaitAndSignal mutexWait(myMutex);
      if (condition)
        return;
      do_something();
      if (other_condition)
        return;
      do_something_else();
    }

Constructor & Destructor Documentation

PWriteWaitAndSignal::PWriteWaitAndSignal ( const PReadWriteMutex mutex,
PBoolean  start = true 
)
inline

Create the PWriteWaitAndSignal wait instance.

This will wait on the specified PReadWriteMutex using the StartWrite() function before returning.

Parameters
mutexPReadWriteMutex descendent to wait/signal.
startStart write operation on PReadWriteMutex before returning.

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