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
PWaitAndSignal Class Reference

This class waits for the semaphore on construction and automatically signals the semaphore on destruction. More...

`#include <psync.h>`

Collaboration diagram for PWaitAndSignal:
[legend]

## Public Member Functions
| PWaitAndSignal (const PSync &sem, PBoolean wait=true)
| Create the semaphore wait instance. More...
| ~PWaitAndSignal ()
| Signal the semaphore. More...

## Protected Attributes
PSync & | sync

## Detailed Description

This class waits for the semaphore on construction and automatically signals the semaphore on destruction.

Any descendent of PSemaphore may be used.

This is very useful for constructs such as:

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

## Constructor & Destructor Documentation

PWaitAndSignal::PWaitAndSignal | ( | const PSync & | sem,
|  | PBoolean | wait = `true`
| ) |  |
| inline

Create the semaphore wait instance.

This will wait on the specified semaphore using the Wait() function before returning.

Parameters

  sem | Semaphore descendent to wait/signal.
  wait | Wait for semaphore before returning.

References sync, and PSync::Wait().

PWaitAndSignal::~PWaitAndSignal | ( |  | ) |
| inline

Signal the semaphore.

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

References PSync::Signal(), and sync.

## Member Data Documentation

PSync& PWaitAndSignal::sync
| protected

Referenced by PWaitAndSignal(), and ~PWaitAndSignal().

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

- psync.h