Use error checking mutex in developer mode on Linux

When developer mode is enabled, use error checking mutex type, so we can
discover wrong use of mutexes faster.
This commit is contained in:
Ondřej Surý
2024-02-07 20:54:05 +01:00
parent 01038d894f
commit 2c98ccbdba
3 changed files with 9 additions and 3 deletions
+1 -1
View File
@@ -171,7 +171,7 @@ AC_ARG_ENABLE([developer],
AS_IF([test "$enable_developer" = "yes"],
[DEVELOPER_MODE=yes
STD_CPPFLAGS="$STD_CPPFLAGS -DISC_MEM_DEFAULTFILL=1 -DISC_MEM_TRACKLINES=1 -DISC_LIST_CHECKINIT=1 -DISC_STATS_CHECKUNDERFLOW=1 -DDNS_RBTDB_STRONG_RWLOCK_CHECK=1"
STD_CPPFLAGS="$STD_CPPFLAGS -DISC_MEM_DEFAULTFILL=1 -DISC_MEM_TRACKLINES=1 -DISC_LIST_CHECKINIT=1 -DISC_STATS_CHECKUNDERFLOW=1 -DDNS_RBTDB_STRONG_RWLOCK_CHECK=1 -DISC_MUTEX_ERROR_CHECK=1"
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${enable_querytrace+set}" = set || enable_querytrace=yes
test "${with_cmocka+set}" = set || with_cmocka=yes
+3 -1
View File
@@ -23,7 +23,9 @@
#include <isc/result.h> /* for ISC_R_ codes */
#include <isc/util.h>
#if defined(PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP)
#if ISC_MUTEX_ERROR_CHECK && defined(PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP)
#define ISC_MUTEX_INITIALIZER PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
#elif defined(PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP)
#define ISC_MUTEX_INITIALIZER PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
#else
#define ISC_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
+5 -1
View File
@@ -33,7 +33,11 @@ static isc_once_t init_once = ISC_ONCE_INIT;
static void
mutex_initialize(void) {
RUNTIME_CHECK(pthread_mutexattr_init(&isc__mutex_init_attr) == 0);
#if defined(PTHREAD_MUTEX_ADAPTIVE_NP)
#if ISC_MUTEX_ERROR_CHECK && defined(PTHREAD_MUTEX_ERRORCHECK_NP)
RUNTIME_CHECK(pthread_mutexattr_settype(&isc__mutex_init_attr,
PTHREAD_MUTEX_ERRORCHECK_NP) ==
0);
#elif defined(PTHREAD_MUTEX_ADAPTIVE_NP)
RUNTIME_CHECK(pthread_mutexattr_settype(&isc__mutex_init_attr,
PTHREAD_MUTEX_ADAPTIVE_NP) ==
0);