1 <assertions> 2 <assertion id="1" tag="ref:XSH6:32467:32469"> 3 The function 4 int pthread_cond_wait(pthread_cond_t *restrict cond, 5 pthread_mutex_t *restrict mutex); 6 shall block on a condition variable. It shall be called with mutex locked 7 by the calling thread or undefined behavior results. 8 </assertion> 9 10 <assertion id="2" tag="ref:XSH6:32476:32477"> 11 Upon successful return, the mutex shall have been locked and shall be owned 12 by the calling thread. 13 </assertion> 14 15 <assertion id="3" tag="ref:XSH6:32516:32516"> 16 Upon successful completion, a value of zero shall be returned; 17 </assertion> 18 19 <assertion id="4" tag="ref:XSH6:32521:32526"> 20 The pthread_cond_wait() function may fail if: 21 [EINVAL] The value specified by cond, mutex,or abstime is invalid. 22 [EINVAL] Different mutexes were supplied for concurrent pthread_cond_timedwait() or 23 pthread_cond_wait() operations on the same condition variable. 24 [EPERM] The mutex was not owned by the current thread at the time of the call. 25 These functions shall not return an error code of [EINTR]. 26 </assertion> 27 28 </assertions> 29