summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2021-07-21 12:12:26 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2021-07-21 12:16:20 +0200
commitc6eccf6137fae2c2f158af6bdc393d70d832b9e9 (patch)
tree2e63401119d1f9804d407bf6205e4de9305a45f6 /src/drivers
parent15f1b6b5c4783695769d3342b85b26b3e7bd29bd (diff)
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
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Posix/Fl_Posix_System_Driver.cxx14
1 files changed, 7 insertions, 7 deletions
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();