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”).