QoreCondition Class Reference

a thread condition class implementing a wrapper for pthread_cond_t More...

`#include <QoreCondition.h>`

## Public Member Functions

DLLEXPORT | QoreCondition ()
| creates the condition object
DLLEXPORT | ~QoreCondition ()
| destroys the condition object
DLLEXPORT int | broadcast ()
| singles all threads blocked on this condition to wake up
DLLEXPORT int | signal ()
| signals a single waiting thread to wake up
DLLEXPORT int | wait (pthread_mutex_t *m)
| blocks a thread on a mutex until the condition is signaled More...
DLLEXPORT int | wait (pthread_mutex_t *m, int timeout_ms)
| blocks a thread on a mutex for a certain number of milliseconds until the condition is signaled More...
DLLLOCAL int | wait (QoreThreadLock *l)
| blocks a thread on a lock until the condition is signaled More...
DLLLOCAL int | wait (QoreThreadLock *l, int timeout_ms)
| blocks a thread on a lock for a certain number of milliseconds until the condition is signaled More...
DLLLOCAL int | wait (QoreThreadLock &l)
| blocks a thread on a lock until the condition is signaled More...
DLLLOCAL int | wait (QoreThreadLock &l, int timeout_ms)
| blocks a thread on a lock for a certain number of milliseconds until the condition is signaled More...
DLLEXPORT int | wait2 (pthread_mutex_t *m, int64 timeout_ms)
| blocks a thread on a mutex for a certain number of milliseconds until the condition is signaled More...
DLLLOCAL int | wait2 (QoreThreadLock *l, int64 timeout_ms)
| blocks a thread on a lock for a certain number of milliseconds until the condition is signaled More...
DLLLOCAL int | wait2 (QoreThreadLock &l, int64 timeout_ms)
| blocks a thread on a lock for a certain number of milliseconds until the condition is signaled More...

## Detailed Description

a thread condition class implementing a wrapper for pthread_cond_t

all threads that block on a given QoreCondition object should use the same mutex or QoreThreadLock object for blocking

See also
  QoreThreadLock

## Member Function Documentation

## wait() [1/6]

DLLEXPORT int QoreCondition::wait | ( | pthread_mutex_t * | m | ) |

blocks a thread on a mutex until the condition is signaled

Parameters

  m | the mutex to wait on

Returns
  0 for success, non-zero for error

## wait() [2/6]

DLLEXPORT int QoreCondition::wait | ( | pthread_mutex_t * | m,
|  | int | timeout_ms
| ) |  |

blocks a thread on a mutex for a certain number of milliseconds until the condition is signaled

Parameters

  m | the mutext to wait on
  timeout_ms | the timeout value is milliseconds; if <= 0 will wait indefinitely

Returns
  a non-zero return value indicates a timeout occured

Deprecated:
  use wait2(pthread_mutex_t*, int64) instead

## wait() [3/6]

DLLLOCAL int QoreCondition::wait | ( | QoreThreadLock * | l | ) |

inline

blocks a thread on a lock until the condition is signaled

Parameters

  l | the QoreThreadLock to wait on

Returns
  0 for success, non-zero for error

## wait() [4/6]

DLLLOCAL int QoreCondition::wait | ( | QoreThreadLock * | l,
|  | int | timeout_ms
| ) |  |

inline

blocks a thread on a lock for a certain number of milliseconds until the condition is signaled

Parameters

  l | the QoreThreadLock to wait on
  timeout_ms | the timeout value is milliseconds; if <= 0 will wait indefinitely

Returns
  a non-zero return value indicates a timeout occured

Deprecated:
  use wait2(QoreThreadLock*, int64) instead

## wait() [5/6]

DLLLOCAL int QoreCondition::wait | ( | QoreThreadLock & | l | ) |

inline

blocks a thread on a lock until the condition is signaled

Parameters

  l | the QoreThreadLock to wait on

Returns
  0 for success, non-zero for error

## wait() [6/6]

DLLLOCAL int QoreCondition::wait | ( | QoreThreadLock & | l,
|  | int | timeout_ms
| ) |  |

inline

blocks a thread on a lock for a certain number of milliseconds until the condition is signaled

Parameters

  l | the QoreThreadLock to wait on
  timeout_ms | the timeout value is milliseconds; if <= 0 will wait indefinitely

Returns
  a non-zero return value indicates a timeout occured

Deprecated:
  use wait2(QoreThreadLock&, int64) instead

## wait2() [1/3]

DLLEXPORT int QoreCondition::wait2 | ( | pthread_mutex_t * | m,
|  | int64 | timeout_ms
| ) |  |

blocks a thread on a mutex for a certain number of milliseconds until the condition is signaled

Parameters

  m | the mutext to wait on
  timeout_ms | the timeout value is milliseconds; if <= 0 will wait indefinitely

Returns
  a non-zero return value indicates a timeout occured

## wait2() [2/3]

DLLLOCAL int QoreCondition::wait2 | ( | QoreThreadLock * | l,
|  | int64 | timeout_ms
| ) |  |

inline

blocks a thread on a lock for a certain number of milliseconds until the condition is signaled

Parameters

  l | the QoreThreadLock to wait on
  timeout_ms | the timeout value is milliseconds; if <= 0 will wait indefinitely

Returns
  a non-zero return value indicates a timeout occured

## wait2() [3/3]

DLLLOCAL int QoreCondition::wait2 | ( | QoreThreadLock & | l,
|  | int64 | timeout_ms
| ) |  |

inline

blocks a thread on a lock for a certain number of milliseconds until the condition is signaled

Parameters

  l | the QoreThreadLock to wait on
  timeout_ms | the timeout value is milliseconds; if <= 0 will wait indefinitely

Returns
  a non-zero return value indicates a timeout occured

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

- include/qore/QoreCondition.h