blob: eb64006258381b96c53a6a487784b7640b470aaf [file] [log] [blame]
<assertions>
<assertion id="1" tag="ref:XSH6:32467:32469">
The function
int pthread_cond_timedwait(pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex);
const struct timespec *restrict abstime);
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:32499:32502">
The pthread_cond_timedwait() function shall be equivalent to pthread_cond_wait(), except that an
error is returned if the absolute time specified by abstime passes (that is, system time equals or
exceeds abstime) before the condition cond is signaled or broadcasted, or if the absolute time
specified by abstime has already been passed at the time of the call.
</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_timedwait() function shall fail if:
[ETIMEDOUT] The time specified by 'abstime' has passed.
The pthread_cond_timedwait() 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>