]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Always use adaptive mutexes on Linux
authorOndřej Surý <ondrej@isc.org>
Mon, 5 Feb 2024 07:57:23 +0000 (08:57 +0100)
committerOndřej Surý <ondrej@isc.org>
Wed, 7 Feb 2024 19:54:05 +0000 (20:54 +0100)
When adaptive mutexes are available (with glibc), always use them.
Remove the autoconf switch and also fix the static initializer.

configure.ac
lib/isc/include/isc/mutex.h
lib/isc/mutex.c

index 92f40c17ac2a0b1d36dd6718cf5b7a85d94cb4ae..cd05a39e3d506c507cb0b4ffcddf165c581e114e 100644 (file)
@@ -562,30 +562,6 @@ AC_ARG_WITH([locktype],
                            (adaptive or standard)]),
            [], [with_locktype="adaptive"])
 
-AS_CASE([$with_locktype],
-       [adaptive],[
-         AC_MSG_CHECKING([for PTHREAD_MUTEX_ADAPTIVE_NP])
-         AC_COMPILE_IFELSE(
-           [AC_LANG_PROGRAM(
-              [[
-                #ifndef _GNU_SOURCE
-                #define _GNU_SOURCE
-                #endif
-                #include <pthread.h>
-              ]],
-              [[
-                return (PTHREAD_MUTEX_ADAPTIVE_NP);
-              ]]
-            )],
-           [AC_MSG_RESULT([using adaptive lock type])
-            AC_DEFINE([HAVE_PTHREAD_MUTEX_ADAPTIVE_NP], 1,
-                      [Support for PTHREAD_MUTEX_ADAPTIVE_NP]) ],
-           [AC_MSG_RESULT([using standard lock type])]
-         )],
-       [standard],[AC_MSG_RESULT([using standard lock type])],
-       [AC_MSG_ERROR([You must specify "adaptive" or "standard" for --with-locktype.])]
-       )
-
 AC_CHECK_HEADERS([sched.h])
 
 AC_SEARCH_LIBS([sched_yield],[rt])
index 45256a6fac9e2fbfadb69402fe050ddbf383cdf1..904747e335d217972dc63733380e3de439cd70ad 100644 (file)
 #include <isc/result.h> /* for ISC_R_ codes */
 #include <isc/util.h>
 
+#if defined(PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP)
+#define ISC_MUTEX_INITIALIZER PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
+#else
 #define ISC_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
+#endif
 
 ISC_LANG_BEGINDECLS
 
index e591ffe8726b7fa53e37996b5387ca28ddbfe974..ff9053793dadc1477dcc98a2713e7c6133ccdbe1 100644 (file)
@@ -33,7 +33,7 @@ static isc_once_t init_once = ISC_ONCE_INIT;
 static void
 mutex_initialize(void) {
        RUNTIME_CHECK(pthread_mutexattr_init(&isc__mutex_init_attr) == 0);
-#ifdef HAVE_PTHREAD_MUTEX_ADAPTIVE_NP
+#if defined(PTHREAD_MUTEX_ADAPTIVE_NP)
        RUNTIME_CHECK(pthread_mutexattr_settype(&isc__mutex_init_attr,
                                                PTHREAD_MUTEX_ADAPTIVE_NP) ==
                      0);