<assertions>
  <assertion id="1" tag="ref:XSH6:32467:32469">
   The function
     int pthread_cond_wait(pthread_cond_t *restrict cond,
                           pthread_mutex_t *restrict mutex);
   shall block on a condition variable. It shall be called with mutex locked
   by the calling thread or undefined behavior results.
  </assertion>

  <assertion id="2" tag="ref:XSH6:32476:32477">
  Upon successful return, the mutex shall have been locked and shall be owned
  by the calling thread.
  </assertion>

  <assertion id="3" tag="ref:XSH6:32516:32516">
  Upon successful completion, a value of zero shall be returned;
  </assertion>

  <assertion id="4" tag="ref:XSH6:32521:32526">
  The pthread_cond_wait() function may fail if:
    [EINVAL] The value specified by cond, mutex,or abstime is invalid.
    [EINVAL] Different mutexes were supplied for concurrent pthread_cond_timedwait() or
             pthread_cond_wait() operations on the same condition variable.
    [EPERM] The mutex was not owned by the current thread at the time of the call.
  These functions shall not return an error code of [EINTR].
  </assertion>

</assertions>
