1#include <threads.h> 2#include <pthread.h> 3#include <errno.h> 4 5int cnd_timedwait(cnd_t *restrict c, mtx_t *restrict m, const struct timespec *restrict ts) 6{ 7 int ret = __pthread_cond_timedwait((pthread_cond_t *)c, (pthread_mutex_t *)m, ts); 8 switch (ret) { 9 /* May also return EINVAL or EPERM. */ 10 default: return thrd_error; 11 case 0: return thrd_success; 12 case ETIMEDOUT: return thrd_timedout; 13 } 14} 15