PTHREAD_COND_INIT(3)

NAME
pthread_cond_init - create a condition variable

LIBRARY
libpthread

SYNOPSIS
#include <pthread.h>
int
pthread_cond_init(pthread_cond_t * restrict cond, const pthread_condattr_t * restrict attr);

DESCRIPTION
The pthread_cond_init() function creates a new condition variable, with attributes specified with attr. If attr is NULL the default attributes are used.

Condition variables are intended to be used to communicate changes in the state of data shared between threads. Condition variables are always associated with a mutex to provide synchronized access to the shared data. A single predicate should always be associated with a condition variable. The predicate should identify a state of the shared data that must be true before the thread proceeds.

RETURN VALUES
If successful, the pthread_cond_init() function will return zero and put the new condition variable id into cond, otherwise an error number will be returned to indicate the error.

ERRORS
pthread_cond_init() shall fail if:

[EAGAIN]
    The system lacks the resources to initialize another condition variable.

[ENOMEM]
    The process cannot allocate enough memory to initialize another condition variable.

pthread_cond_init() may fail if:

[EINVAL]
    The value specified by attr is invalid.

SEE ALSO
pthread_cond_broadcast(3), pthread_cond_destroy(3), pthread_cond_signal(3), pthread_cond_timedwait(3), pthread_cond_wait(3)

STANDARDS
pthread_cond_init() conforms to p1003.1-96.