pthread_cond_wait
—
wait on a condition variable
POSIX Threads Library (libpthread, -lpthread)
#include <pthread.h>
int
pthread_cond_wait
(pthread_cond_t
*restrict cond,
pthread_mutex_t *restrict
mutex);
The pthread_cond_wait
() function atomically blocks the
current thread waiting on the condition variable specified by
cond, and releases the mutex specified by
mutex. The waiting thread unblocks only after another
thread calls
pthread_cond_signal(3),
or
pthread_cond_broadcast(3)
with the same condition variable, and the current thread reacquires the lock
on mutex.
If successful, the pthread_cond_wait
() function will
return zero. Otherwise an error number will be returned to indicate the error.
The pthread_cond_wait
() function will fail if:
- [
EINVAL
]
- The value specified by cond or the value specified
by mutex is invalid.
- [
EPERM
]
- The specified mutex was not locked by the calling
thread.
- [
EOWNERDEAD
]
- The argument mutex points to a robust mutex and the
process containing the previous owning thread terminated while holding the
mutex lock. The lock was granted to the caller and it is up to the new
owner to make the state consistent.
- [
ENOTRECOVERABLE
]
- The state protected by the mutex is not
recoverable.
The pthread_cond_wait
() function conforms to
ISO/IEC 9945-1:1996 (“POSIX.1”).