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