From a500a5e534b3c03c685f3397050afe6667b740f8 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 16 Mar 2026 01:39:48 +0000 Subject: Add phread_mutex_clocklock() sysdep, pthread_mutex_tailock() function --- src/libstddjb/pthread_mutex_tailock.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/libstddjb/pthread_mutex_tailock.c (limited to 'src/libstddjb') diff --git a/src/libstddjb/pthread_mutex_tailock.c b/src/libstddjb/pthread_mutex_tailock.c new file mode 100644 index 0000000..affa8b3 --- /dev/null +++ b/src/libstddjb/pthread_mutex_tailock.c @@ -0,0 +1,24 @@ +/* ISC license. */ + +#include +#include +#include + +#include +#include +#include + +int pthread_mutex_tailock (pthread_mutex_t *mtx, tain const *deadline, tain *stamp) +{ + struct timespec ts ; + tain tto ; + tain_sub(&tto, deadline, stamp) ; + if (!timespec_from_tain_relative(&ts, &tto)) return errno ; +#ifdef SKALIBS_HASPTHREADMUTEXCLOCKLOCK + if (&tain_now != &tain_wallclock_read) + return pthread_mutex_clocklock(mtx, CLOCK_MONOTONIC, &ts) ; + else +#else + return pthread_mutex_timedlock(mtx, &ts) ; +#endif +} -- cgit v1.3.1