The GNU C Library provides several waiting functions that expect an explicit
clockid_t argument.  These functions were all adopted by
POSIX.1-2024.
int pthread_cond_clockwait (pthread_cond_t *cond, pthread_mutex_t *mutex, clockid_t clockid, const struct timespec *abstime) ¶Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock | See POSIX Safety Concepts.
Behaves like pthread_cond_timedwait except the time abstime is
measured against the clock specified by clockid rather than the clock
specified or defaulted when pthread_cond_init was called.  Currently,
clockid must be either CLOCK_MONOTONIC or
CLOCK_REALTIME.
int pthread_rwlock_clockrdlock (pthread_rwlock_t *rwlock, clockid_t clockid, const struct timespec *abstime) ¶Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock | See POSIX Safety Concepts.
Behaves like pthread_rwlock_timedrdlock except the time
abstime is measured against the clock specified by clockid
rather than CLOCK_REALTIME.  Currently, clockid must be either
CLOCK_MONOTONIC or CLOCK_REALTIME, otherwise EINVAL is
returned.
int pthread_rwlock_clockwrlock (pthread_rwlock_t *rwlock, clockid_t clockid, const struct timespec *abstime) ¶Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock | See POSIX Safety Concepts.
Behaves like pthread_rwlock_timedwrlock except the time
abstime is measured against the clock specified by clockid
rather than CLOCK_REALTIME.  Currently, clockid must be either
CLOCK_MONOTONIC or CLOCK_REALTIME, otherwise EINVAL is
returned.