From: Ondřej Surý Date: Mon, 5 Feb 2024 07:57:23 +0000 (+0100) Subject: Always use adaptive mutexes on Linux X-Git-Tag: v9.19.22~56^2~1 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=01038d894fdf6df85aba8b4fdb2cc149f0476da5;p=thirdparty%2Fbind9.git Always use adaptive mutexes on Linux When adaptive mutexes are available (with glibc), always use them. Remove the autoconf switch and also fix the static initializer. --- diff --git a/configure.ac b/configure.ac index 92f40c17ac2..cd05a39e3d5 100644 --- a/configure.ac +++ b/configure.ac @@ -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 - ]], - [[ - 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]) diff --git a/lib/isc/include/isc/mutex.h b/lib/isc/include/isc/mutex.h index 45256a6fac9..904747e335d 100644 --- a/lib/isc/include/isc/mutex.h +++ b/lib/isc/include/isc/mutex.h @@ -23,7 +23,11 @@ #include /* for ISC_R_ codes */ #include +#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 diff --git a/lib/isc/mutex.c b/lib/isc/mutex.c index e591ffe8726..ff9053793da 100644 --- a/lib/isc/mutex.c +++ b/lib/isc/mutex.c @@ -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);