From c6eccf6137fae2c2f158af6bdc393d70d832b9e9 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Wed, 21 Jul 2021 12:12:26 +0200 Subject: Call pthread's recursive mutex on Linux (Issue #245) Add CMake test for PTHREAD_MUTEX_RECURSIVE Add autoconf/configure compile test for PTHREAD_MUTEX_RECURSIVE Replace "#ifdef PTHREAD_MUTEX_RECURSIVE" with "#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE" and define HAVE_PTHREAD_MUTEX_RECURSIVE in config.h --- src/drivers/Posix/Fl_Posix_System_Driver.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/drivers/Posix/Fl_Posix_System_Driver.cxx b/src/drivers/Posix/Fl_Posix_System_Driver.cxx index 68ae75869..b1a30235d 100644 --- a/src/drivers/Posix/Fl_Posix_System_Driver.cxx +++ b/src/drivers/Posix/Fl_Posix_System_Driver.cxx @@ -193,7 +193,7 @@ static void* quadruple_dlopen(const char *libname) } return ptr; } -#endif +#endif // HAVE_DLSYM && HAVE_DLFCN_H && !defined (__APPLE_CC__) /** @@ -332,7 +332,7 @@ static void unlock_function_std() { if (!--counter) pthread_mutex_unlock(&fltk_mutex); } -# ifdef PTHREAD_MUTEX_RECURSIVE +# ifdef HAVE_PTHREAD_MUTEX_RECURSIVE static bool lock_function_init_rec() { pthread_mutexattr_t attrib; pthread_mutexattr_init(&attrib); @@ -352,7 +352,7 @@ static void lock_function_rec() { static void unlock_function_rec() { pthread_mutex_unlock(&fltk_mutex); } -# endif // PTHREAD_MUTEX_RECURSIVE +# endif // HAVE_PTHREAD_MUTEX_RECURSIVE void Fl_Posix_System_Driver::awake(void* msg) { if (thread_filedes[1]) { @@ -402,18 +402,18 @@ int Fl_Posix_System_Driver::lock() { // Set lock/unlock functions for this system, using a system-supplied // recursive mutex if supported... -# ifdef PTHREAD_MUTEX_RECURSIVE +# ifdef HAVE_PTHREAD_MUTEX_RECURSIVE if (!lock_function_init_rec()) { fl_lock_function = lock_function_rec; fl_unlock_function = unlock_function_rec; } else { -# endif // PTHREAD_MUTEX_RECURSIVE +# endif // HAVE_PTHREAD_MUTEX_RECURSIVE lock_function_init_std(); fl_lock_function = lock_function_std; fl_unlock_function = unlock_function_std; -# ifdef PTHREAD_MUTEX_RECURSIVE +# ifdef HAVE_PTHREAD_MUTEX_RECURSIVE } -# endif // PTHREAD_MUTEX_RECURSIVE +# endif // HAVE_PTHREAD_MUTEX_RECURSIVE } fl_lock_function(); -- cgit v1.2.3