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