aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2026-03-18 21:17:10 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2026-03-18 21:17:10 +0000
commit6e6eb242188e8312a6a8a78e6be0d11cd1036610 (patch)
tree02cb09a553f32bb5fbb671528ab900a1636c7bce
parentebce1a511a60f3b4a9785c3962eaa381206c914f (diff)
downloadskalibs-6e6eb242188e8312a6a8a78e6be0d11cd1036610.tar.gz
MacOS doesn't have pthread_mutex_timedlock -_-
-rw-r--r--CONTRIBUTING28
-rwxr-xr-xconfigure3
-rw-r--r--package/deps.mak2
-rw-r--r--src/libposixplz/pthread_mutex_tailock.c (renamed from src/libstddjb/pthread_mutex_tailock.c)13
-rw-r--r--src/sysdeps/trypthreadmutexclocklock.c4
-rw-r--r--src/sysdeps/trypthreadmutextimedlock.c11
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.
diff --git a/configure b/configure
index 7905631..dd00e76 100755
--- a/configure
+++ b/configure
@@ -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) ;
+}