diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2026-03-18 21:17:10 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2026-03-18 21:17:10 +0000 |
| commit | 6e6eb242188e8312a6a8a78e6be0d11cd1036610 (patch) | |
| tree | 02cb09a553f32bb5fbb671528ab900a1636c7bce | |
| parent | ebce1a511a60f3b4a9785c3962eaa381206c914f (diff) | |
| download | skalibs-6e6eb242188e8312a6a8a78e6be0d11cd1036610.tar.gz | |
MacOS doesn't have pthread_mutex_timedlock -_-
| -rw-r--r-- | CONTRIBUTING | 28 | ||||
| -rwxr-xr-x | configure | 3 | ||||
| -rw-r--r-- | package/deps.mak | 2 | ||||
| -rw-r--r-- | src/libposixplz/pthread_mutex_tailock.c (renamed from src/libstddjb/pthread_mutex_tailock.c) | 13 | ||||
| -rw-r--r-- | src/sysdeps/trypthreadmutexclocklock.c | 4 | ||||
| -rw-r--r-- | src/sysdeps/trypthreadmutextimedlock.c | 11 |
6 files changed, 56 insertions, 5 deletions
diff --git a/CONTRIBUTING b/CONTRIBUTING index 6279422..3173998 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -1,5 +1,31 @@ - Please add a Signed-Off-By: line at the end of your commit, +- License + + Your contributions to this project are governed by the ISC license. + Please review the COPYING file for this project. + + +- Contribution terms + + When making a contribution you agree to the following terms: + + * I, the contributor, am the copyright owner of these changes + * I submit these changes according to the project's license +with no additionam requirements + * I understand these changes in full and will be able to respond +to review comments. + + Please add a Signed-Off-By: line at the end of your commits, which certifies that you have the right and authority to pass it on as an open-source patch, as explicited in the Developer's Certificate of Origin available in this project's DCO file, or at https://developercertificate.org/ + + +- AI policy + + This project does not accept contributions generated by LLMs +(large language models), sometimes also referred to as "AI". + This policy is not open to discussion. Any content submitted that is +clearly labelled as LLM-generated will be immediately closed, and any +attempt to bypass this policy in any way will result in a ban from the +project. @@ -722,7 +722,8 @@ choose cl prctl 'prctl()' choose cl procctl 'procctl()' choose cl kevent 'kevent()' choose cl kqueue1 'kqueue1()' -choose cl pthreadmutexclocklock 'pthread_mutex_clocklock()' +choose cl pthreadmutextimedlock 'pthread_mutex_timedlock()' $pthread_lib +choose cl pthreadmutexclocklock 'pthread_mutex_clocklock()' $pthread_lib # Here are the evil irreducible run-time sysdeps. choose clr devurandom '/dev/urandom' diff --git a/package/deps.mak b/package/deps.mak index 5d90012..e9eb270 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -209,6 +209,7 @@ src/libposixplz/mkptemp.o src/libposixplz/mkptemp.lo: src/libposixplz/mkptemp.c src/libposixplz/mkptemp2.o src/libposixplz/mkptemp2.lo: src/libposixplz/mkptemp2.c src/include/skalibs/posixplz.h src/libposixplz/mkptemp3.o src/libposixplz/mkptemp3.lo: src/libposixplz/mkptemp3.c src/include/skalibs/djbunix.h src/include/skalibs/fcntl.h src/include/skalibs/posixplz.h src/libposixplz/munmap_void.o src/libposixplz/munmap_void.lo: src/libposixplz/munmap_void.c src/include/skalibs/posixplz.h +src/libposixplz/pthread_mutex_tailock.o src/libposixplz/pthread_mutex_tailock.lo: src/libposixplz/pthread_mutex_tailock.c src/include/skalibs/pthread.h src/include/skalibs/sysdeps.h src/include/skalibs/tai.h src/libposixplz/qsortr.o src/libposixplz/qsortr.lo: src/libposixplz/qsortr.c src/include/skalibs/functypes.h src/include/skalibs/nonposix.h src/include/skalibs/posixplz.h src/include/skalibs/sysdeps.h src/libposixplz/setgroups.o src/libposixplz/setgroups.lo: src/libposixplz/setgroups.c src/include/skalibs/nonposix.h src/include/skalibs/posixishard.h src/include/skalibs/setgroups.h src/include/skalibs/sysdeps.h src/libposixplz/strcasestr.o src/libposixplz/strcasestr.lo: src/libposixplz/strcasestr.c src/include/skalibs/bytestr.h src/include/skalibs/sysdeps.h @@ -507,7 +508,6 @@ src/libstddjb/openwritevnclose_suffix6.o src/libstddjb/openwritevnclose_suffix6. src/libstddjb/openwritevnclose_unsafe5.o src/libstddjb/openwritevnclose_unsafe5.lo: src/libstddjb/openwritevnclose_unsafe5.c src/include/skalibs/djbunix.h src/include/skalibs/posixplz.h src/libstddjb/path_canonicalize.o src/libstddjb/path_canonicalize.lo: src/libstddjb/path_canonicalize.c src/include/skalibs/djbunix.h src/libstddjb/pipe_internal.o src/libstddjb/pipe_internal.lo: src/libstddjb/pipe_internal.c src/include/skalibs/djbunix.h src/include/skalibs/fcntl.h src/include/skalibs/nonposix.h src/include/skalibs/sysdeps.h -src/libstddjb/pthread_mutex_tailock.o src/libstddjb/pthread_mutex_tailock.lo: src/libstddjb/pthread_mutex_tailock.c src/include/skalibs/pthread.h src/include/skalibs/sysdeps.h src/include/skalibs/tai.h src/libstddjb/readnclose.o src/libstddjb/readnclose.lo: src/libstddjb/readnclose.c src/include/skalibs/allreadwrite.h src/include/skalibs/djbunix.h src/libstddjb/rm_rf.o src/libstddjb/rm_rf.lo: src/libstddjb/rm_rf.c src/include/skalibs/djbunix.h src/include/skalibs/skamisc.h src/libstddjb/rm_rf_in_tmp.o src/libstddjb/rm_rf_in_tmp.lo: src/libstddjb/rm_rf_in_tmp.c src/include/skalibs/djbunix.h src/include/skalibs/stralloc.h diff --git a/src/libstddjb/pthread_mutex_tailock.c b/src/libposixplz/pthread_mutex_tailock.c index 8f8fbf3..736921c 100644 --- a/src/libstddjb/pthread_mutex_tailock.c +++ b/src/libposixplz/pthread_mutex_tailock.c @@ -8,6 +8,8 @@ #include <skalibs/tai.h> #include <skalibs/pthread.h> +#ifdef SKALIBS_HASPTHREADMUTEXTIMEDLOCK + int pthread_mutex_tailock (pthread_mutex_t *mtx, tain const *deadline, tain *stamp) { int e ; @@ -26,3 +28,14 @@ int pthread_mutex_tailock (pthread_mutex_t *mtx, tain const *deadline, tain *sta tain_now(stamp) ; return e ; } + +#else + +int pthread_mutex_tailock (pthread_mutex_t *mtx, tain const *deadline, tain *stamp) +{ + (void)deadline ; + (void)stamp ; + return pthread_mutex_lock(mtx) ; +} + +#endif diff --git a/src/sysdeps/trypthreadmutexclocklock.c b/src/sysdeps/trypthreadmutexclocklock.c index b102db2..4a84091 100644 --- a/src/sysdeps/trypthreadmutexclocklock.c +++ b/src/sysdeps/trypthreadmutexclocklock.c @@ -5,7 +5,7 @@ int main (void) { - pthread_mutex_t mtx = PTHREAD_MUTEX_INIT ; - strict timespec ts = { .tv_sec = 0, .tv_nsec = 1 } ; + pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER ; + struct timespec ts = { .tv_sec = 0, .tv_nsec = 1 } ; return pthread_mutex_clocklock(&mtx, CLOCK_MONOTONIC, &ts) ; } diff --git a/src/sysdeps/trypthreadmutextimedlock.c b/src/sysdeps/trypthreadmutextimedlock.c new file mode 100644 index 0000000..f76f198 --- /dev/null +++ b/src/sysdeps/trypthreadmutextimedlock.c @@ -0,0 +1,11 @@ +/* ISC license. */ + +#include <time.h> +#include <pthread.h> + +int main (void) +{ + pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER ; + struct timespec ts = { .tv_sec = 0, .tv_nsec = 1 } ; + return pthread_mutex_timedlock(&mtx, &ts) ; +} |
