diff --git a/configure.ac b/configure.ac index 92f40c17ac..cd05a39e3d 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 45256a6fac..904747e335 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 e591ffe872..ff9053793d 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);