summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--m4/pthreads.m425
1 files changed, 25 insertions, 0 deletions
diff --git a/m4/pthreads.m4 b/m4/pthreads.m4
index fb1adaab8..facac076f 100644
--- a/m4/pthreads.m4
+++ b/m4/pthreads.m4
@@ -73,3 +73,28 @@ AC_DEFUN([CC_PTHREAD_FLAGS], [
ifelse([$2], , [:], [$2])
fi
])
+
+AC_DEFUN([CC_PTHREAD_RECURSIVE_MUTEX], [
+ AC_REQUIRE([CC_PTHREAD_FLAGS])
+ AC_MSG_CHECKING([for recursive mutex support in pthread])
+
+ ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $PTHREAD_LIBS"
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE([#include <pthread.h>
+
+int main() {
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+ return 0;
+}
+ ]), [have_recursive_mutex=yes], [have_recursive_mutex=no])
+ LIBS="$ac_save_LIBS"
+
+ AC_MSG_RESULT([$have_recursive_mutex])
+
+ if test x"$have_recursive_mutex" = x"yes"; then
+ ifelse([$1], , [:], [$1])
+ else
+ ifelse([$2], , [:], [$2])
+ fi
+])