#include #include #include int mtx_timedlock_base(mtx_t *restrict m, int time_base, const struct timespec *restrict ts) { clockid_t clock = CLOCK_REALTIME; switch (time_base) { case TIME_UTC: clock = CLOCK_REALTIME; break; case TIME_MONOTONIC: clock = CLOCK_MONOTONIC; break; default: return thrd_error; } int ret = pthread_mutex_clocklock((pthread_mutex_t *)m, clock, ts); switch (ret) { default: return thrd_error; case 0: return thrd_success; case ETIMEDOUT: return thrd_timedout; } }