correctly detect adaptive mutexes in pthreads

PTHREAD_MUTEX_ADAPTIVE_NP is an enum on glibc and not a macro,
we must test for their existence by attempting compilation.
This commit is contained in:
Eric Wong
2014-08-31 03:57:06 +00:00
committed by Jason Evans
parent bbc5481cf9
commit 4dcf04bfc0
3 changed files with 16 additions and 1 deletions

View File

@@ -215,4 +215,7 @@
/* glibc memalign hook */
#undef JEMALLOC_GLIBC_MEMALIGN_HOOK
/* adaptive mutex support in pthreads */
#undef JEMALLOC_HAVE_PTHREAD_MUTEX_ADAPTIVE_NP
#endif /* JEMALLOC_INTERNAL_DEFS_H_ */

View File

@@ -10,7 +10,7 @@ typedef struct malloc_mutex_s malloc_mutex_t;
#elif (defined(JEMALLOC_MUTEX_INIT_CB))
# define MALLOC_MUTEX_INITIALIZER {PTHREAD_MUTEX_INITIALIZER, NULL}
#else
# if (defined(PTHREAD_MUTEX_ADAPTIVE_NP) && \
# if (defined(JEMALLOC_HAVE_PTHREAD_MUTEX_ADAPTIVE_NP) && \
defined(PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP))
# define MALLOC_MUTEX_TYPE PTHREAD_MUTEX_ADAPTIVE_NP
# define MALLOC_MUTEX_INITIALIZER {PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP}