#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; | |
} | |
} |