PTLib Version 2.12.9

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | List of all members
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>`

Collaboration diagram for PWriteWaitAndSignal:
[legend]

## Public Member Functions
| PWriteWaitAndSignal (const PReadWriteMutex &rw, PBoolean start=true)
| Create the PWriteWaitAndSignal wait instance. More...
| ~PWriteWaitAndSignal ()
| End write operation on the PReadWriteMutex. More...

## Protected Attributes
PReadWriteMutex & | mutex

## 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 & | rw,
|  | PBoolean | start = `true`
| ) |  |

Create the PWriteWaitAndSignal wait instance.

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

Parameters

  rw | PReadWriteMutex descendent to wait/signal.
  start | Start write operation on PReadWriteMutex before returning.

PWriteWaitAndSignal::~PWriteWaitAndSignal | ( |  | ) |

End write operation on the PReadWriteMutex.

This will execute the EndWrite() function on the PReadWriteMutex that was used in the construction of this instance.

## Member Data Documentation

PReadWriteMutex& PWriteWaitAndSignal::mutex
| protected

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

- syncthrd.h