Add pthread_atfork(3) feature test.
Some versions of Android provide a pthreads library without providing pthread_atfork(), so in practice a separate feature test is necessary for the latter.
This commit is contained in:
parent
fda60be799
commit
5234be2133
@ -1299,6 +1299,14 @@ if test "x$abi" != "xpecoff" ; then
|
|||||||
AC_CHECK_LIB([pthread], [pthread_create], [LIBS="$LIBS -lpthread"],
|
AC_CHECK_LIB([pthread], [pthread_create], [LIBS="$LIBS -lpthread"],
|
||||||
[AC_SEARCH_LIBS([pthread_create], , ,
|
[AC_SEARCH_LIBS([pthread_create], , ,
|
||||||
AC_MSG_ERROR([libpthread is missing]))])
|
AC_MSG_ERROR([libpthread is missing]))])
|
||||||
|
JE_COMPILABLE([pthread_atfork(3)], [
|
||||||
|
#include <pthread.h>
|
||||||
|
], [
|
||||||
|
pthread_atfork((void *)0, (void *)0, (void *)0);
|
||||||
|
], [je_cv_pthread_atfork])
|
||||||
|
if test "x${je_cv_pthread_atfork}" = "xyes" ; then
|
||||||
|
AC_DEFINE([JEMALLOC_HAVE_PTHREAD_ATFORK], [ ])
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS -D_REENTRANT"
|
CPPFLAGS="$CPPFLAGS -D_REENTRANT"
|
||||||
|
@ -79,6 +79,9 @@
|
|||||||
*/
|
*/
|
||||||
#undef JEMALLOC_HAVE_ISSETUGID
|
#undef JEMALLOC_HAVE_ISSETUGID
|
||||||
|
|
||||||
|
/* Defined if pthread_atfork(3) is available. */
|
||||||
|
#undef JEMALLOC_HAVE_PTHREAD_ATFORK
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Defined if clock_gettime(CLOCK_MONOTONIC_COARSE, ...) is available.
|
* Defined if clock_gettime(CLOCK_MONOTONIC_COARSE, ...) is available.
|
||||||
*/
|
*/
|
||||||
|
@ -1264,8 +1264,9 @@ malloc_init_hard_recursible(void)
|
|||||||
|
|
||||||
ncpus = malloc_ncpus();
|
ncpus = malloc_ncpus();
|
||||||
|
|
||||||
#if (!defined(JEMALLOC_MUTEX_INIT_CB) && !defined(JEMALLOC_ZONE) \
|
#if (defined(JEMALLOC_HAVE_PTHREAD_ATFORK) && !defined(JEMALLOC_MUTEX_INIT_CB) \
|
||||||
&& !defined(_WIN32) && !defined(__native_client__))
|
&& !defined(JEMALLOC_ZONE) && !defined(_WIN32) && \
|
||||||
|
!defined(__native_client__))
|
||||||
/* LinuxThreads' pthread_atfork() allocates. */
|
/* LinuxThreads' pthread_atfork() allocates. */
|
||||||
if (pthread_atfork(jemalloc_prefork, jemalloc_postfork_parent,
|
if (pthread_atfork(jemalloc_prefork, jemalloc_postfork_parent,
|
||||||
jemalloc_postfork_child) != 0) {
|
jemalloc_postfork_child) != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user