This may (or may not) be relevant since Jan is working on the concurrent implementation of tabling. Several new posix functions are now available in the newly released glibc 2.30
Add new POSIX-proposed pthread_cond_clockwait, pthread_mutex_clocklock, pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and sem_clockwait functions. These behave similarly to their “timed” equivalents, but also accept a clockid_t parameter to determine which clock their timeout should be measured against. All functions allow waiting against CLOCK_MONOTONIC and CLOCK_REALTIME. The decision of which clock to be used is made at the time of the wait (unlike with pthread_condattr_setclock, which requires the clock choice at initialization time).
This is important to make stable systems, because CLOCK_REALTIME can go backwards or make strange jumps in some cases (it took erlang quite a while to solve this problem).