---
name: "Conditional"
section: "3cc"
platform: "linux"
package: "libcommoncpp2-dev"
version: "1.0.13-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/Conditional"
---

# Conditional(3cc)

A conditional variable synchcronization object for one to one and one to many signal and control events between processes. conditional.

## NAME

Conditional - A conditional variable synchcronization object for one to one and one to many signal and control events between processes. conditional.

## SYNOPSIS

`#include <thread.h>`

Inherits **Mutex**.

### Public Methods

**Conditional** ()\
 *Create an instance of a conditional.* virtual **~Conditional** ()\
 *Destroy the conditional.* void **signal** (bool broadcast)\
 *Signal a conditional object and a waiting threads.* void **wait** (**timeout\_t** timer=0)\
 *Wait to be signaled from another thread.*

## DETAILED DESCRIPTION

A conditional variable synchcronization object for one to one and one to many signal and control events between processes. conditional.

Conditional variables may wait for and receive signals to notify when to resume or perform operations. Multiple waiting threads may be woken with a broadcast signal.

**Warning:**  While this class inherits from **Mutex**, the methods of the class Conditional just handle the system conditional variable, so the user is responsible for calling enterMutex and leaveMutex so as to avoid race conditions. Another thing to note is that if you have several threads waiting on one condition, not uncommon in thread pools, each thread must take care to manually unlock the mutex if cancellation occurs. Otherwise the first thread cancelled will deadlock the rest of the thread.

**Author:**  David Sugar

**Todo:** \
  implement in win32

## CONSTRUCTOR & DESTRUCTOR DOCUMENTATION

### Conditional::Conditional ()

Create an instance of a conditional.

### virtual Conditional::~Conditional ()` [virtual]`

Destroy the conditional.

## MEMBER FUNCTION DOCUMENTATION

### void Conditional::signal (bool broadcast)

Signal a conditional object and a waiting threads.

**Parameters:**

- *broadcast*

  *this signal to all waiting threads if true.*

### void Conditional::wait (timeout\_t timer = 0)

*Wait to be signaled from another thread.*

## AUTHOR

*Generated automatically by Doxygen for CommonC++ from the source code.*
