pthread_cond_wait(3-thr) pthread_cond_wait(3-thr)
NAME
pthreadcondwait - causes a thread to wait for a condition variable
to be signaled or broadcast
SYNOPSIS
#include <pthread.h>
int pthreadcondwait(
pthreadcondt *cond,
pthreadmutext *mutex);
PARAMETERS
cond Condition variable waited on.
mutex Mutex associated with the condition variable specified in
cond.
DESCRIPTION
The pthreadcondwait() routine causes a thread to wait for a condi-
tion variable to be signaled or broadcast. Each condition corresponds
to one or more predicates based on shared data. The calling thread
waits for the data to reach a particular state (for the predicate to
become true).
Call this routine after you have locked the mutex specified in mutex.
The results of this routine are unpredictable if this routine is
called without first locking the mutex.
This routine automatically releases the mutex and causes the calling
thread to wait on the condition. If the wait is satisfied as a result
of some thread calling pthreadcondsignal() or
pthreadcondbroadcast(), the mutex is reacquired and the routine
returns.
A thread that changes the state of storage protected by the mutex in
such a way that a predicate associated with a condition variable might
now be true must call either pthreadcondsignal() or
pthreadcondbroadcast() for that condition variable. If neither call
is made, any thread waiting on the condition variable continues to
wait.
This routine might (with low probability) return when the condition
variable has not been signaled or broadcast. When a spurious wakeup
occurs, the mutex is reacquired before the routine returns. (To handle
this type of situation, enclose this routine in a loop that checks the
predicate.)
Page 1 Reliant UNIX 5.44 Printed 11/98
pthread_cond_wait(3-thr) pthread_cond_wait(3-thr)
RETURN VALUES
If the function fails, errno may be set to one of the following
values:
EINVAL The value specified by cond or mutex is invalid.
EDEADLK A deadlock condition is detected.
SEE ALSO
pthreadcondbroadcast(3-thr), pthreadconddestroy(3-thr),
pthreadcondinit(3-thr), pthreadcondsignal(3-thr),
pthreadcondtimedwait(3-thr).
Page 2 Reliant UNIX 5.44 Printed 11/98