diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2021-07-21 12:12:26 +0200 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2021-07-21 12:16:20 +0200 |
| commit | c6eccf6137fae2c2f158af6bdc393d70d832b9e9 (patch) | |
| tree | 2e63401119d1f9804d407bf6205e4de9305a45f6 /CMake | |
| parent | 15f1b6b5c4783695769d3342b85b26b3e7bd29bd (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 'CMake')
| -rw-r--r-- | CMake/pthread_mutex_recursive.c | 7 | ||||
| -rw-r--r-- | CMake/resources.cmake | 14 |
2 files changed, 20 insertions, 1 deletions
diff --git a/CMake/pthread_mutex_recursive.c b/CMake/pthread_mutex_recursive.c new file mode 100644 index 000000000..2a058822f --- /dev/null +++ b/CMake/pthread_mutex_recursive.c @@ -0,0 +1,7 @@ +/* + FLTK feature test: do we have PTHREAD_MUTEX_RECURSIVE ? +*/ +#include <pthread.h> +int main() { + return PTHREAD_MUTEX_RECURSIVE; +} diff --git a/CMake/resources.cmake b/CMake/resources.cmake index 57173f206..7ea839d1f 100644 --- a/CMake/resources.cmake +++ b/CMake/resources.cmake @@ -71,6 +71,17 @@ else () fl_find_header (HAVE_PTHREAD_H pthread.h) endif (WIN32 AND NOT CYGWIN) +# Do we have PTHREAD_MUTEX_RECURSIVE ? + +if (HAVE_PTHREAD_H) + try_compile(HAVE_PTHREAD_MUTEX_RECURSIVE + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/pthread_mutex_recursive.c + ) +else () + set (HAVE_PTHREAD_MUTEX_RECURSIVE 0) +endif () + # Special case for Microsoft Visual Studio generator (MSVC): # # The header files <GL/glu.h> and <locale.h> are located in the SDK's @@ -139,7 +150,8 @@ endif (NOT HAVE_DIRENT_H) mark_as_advanced (HAVE_ALSA_ASOUNDLIB_H HAVE_DIRENT_H HAVE_DLFCN_H) mark_as_advanced (HAVE_GL_GLU_H) mark_as_advanced (HAVE_LIBPNG_PNG_H HAVE_LOCALE_H HAVE_NDIR_H) -mark_as_advanced (HAVE_OPENGL_GLU_H HAVE_PNG_H HAVE_PTHREAD_H) +mark_as_advanced (HAVE_OPENGL_GLU_H HAVE_PNG_H) +mark_as_advanced (HAVE_PTHREAD_H HAVE_PTHREAD_MUTEX_RECURSIVE) mark_as_advanced (HAVE_STDIO_H HAVE_STRINGS_H HAVE_SYS_DIR_H) mark_as_advanced (HAVE_SYS_NDIR_H HAVE_SYS_SELECT_H) mark_as_advanced (HAVE_SYS_STDTYPES_H HAVE_XDBE_H) |
