From c11e7f1da8293026a22a572e44c3cfb779c4fff6 Mon Sep 17 00:00:00 2001 From: Conor Wilson Date: Sat, 15 Aug 2026 16:44:12 +0100 Subject: [PATCH] Update irl-threading.h Fix non-recursive mutex issue on POSIX systems --- include/irl-threading.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/include/irl-threading.h b/include/irl-threading.h index 367fe4d..1031a88 100644 --- a/include/irl-threading.h +++ b/include/irl-threading.h @@ -169,7 +169,13 @@ typedef pthread_t irl_thread_t; static inline int irl_mutex_init(irl_mutex_t *m) { - return pthread_mutex_init(m, NULL); + pthread_mutexattr_t attr; + if (pthread_mutexattr_init(&attr) != 0) + return pthread_mutex_init(m, NULL); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + int ret = pthread_mutex_init(m, &attr); + pthread_mutexattr_destroy(&attr); + return ret; } static inline void irl_mutex_destroy(irl_mutex_t *m)