wait on a condition variable
pthread_cond_wait() function atomically blocks the
current thread waiting on the condition variable specified by
cond, and unblocks the mutex specified by
mutex. The waiting thread unblocks only after another
with the same condition variable, and the current thread reacquires the lock
If successful, the
pthread_cond_wait() function will
return zero. Otherwise an error number will be returned to indicate the error.
pthread_cond_wait() will fail if:
- The value specified by cond or the value specified
by mutex is invalid.
pthread_cond_wait() conforms to ISO/IEC