blob: 815dd2c3ba8d6c3ae35dd7e62a1cfdf28a199bf7 [file] [log] [blame]
#include <threads.h>
#include <errno.h>
int __pthread_cond_timedwait(cnd_t* restrict,
mtx_t* restrict,
const struct timespec* restrict);
int cnd_timedwait(cnd_t* restrict c,
mtx_t* restrict m,
const struct timespec* restrict ts) {
int ret = __pthread_cond_timedwait(c, m, ts);
switch (ret) {
/* May also return EINVAL or EPERM. */
default:
return thrd_error;
case 0:
return thrd_success;
case ETIMEDOUT:
return thrd_timedout;
}
}