From: Michael Gran Date: Wed, 30 Mar 2011 04:25:04 +0000 (-0700) Subject: check for GC_allow_register_threads X-Git-Url: https://git.hcoop.net/bpt/guile.git/commitdiff_plain/4000d0641f8a2282a9c52eea33ad91c76625d906 check for GC_allow_register_threads This is not present in earlier versions of BDW-GC * configure.ac: check for GC_allow_register_threads * libguile/threads.c (scm_i_init_thread_for_guile): Only call GC_allow_register_threads if it is present. --- diff --git a/configure.ac b/configure.ac index e5b83798a..4fc25536b 100644 --- a/configure.ac +++ b/configure.ac @@ -1238,7 +1238,7 @@ save_LIBS="$LIBS" LIBS="$BDW_GC_LIBS $LIBS" CFLAGS="$BDW_GC_CFLAGS $CFLAGS" -AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit GC_pthread_cancel]) +AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit GC_pthread_cancel GC_allow_register_threads]) # Though the `GC_do_blocking ()' symbol is present in GC 7.1, it is not # declared, and has a different type (returning void instead of diff --git a/libguile/threads.c b/libguile/threads.c index ad5bbe19f..8dc3414dc 100644 --- a/libguile/threads.c +++ b/libguile/threads.c @@ -772,8 +772,10 @@ scm_i_init_thread_for_guile (struct GC_stack_base *base, SCM parent) */ scm_i_init_guile (base); +#ifdef HAVE_GC_ALLOW_REGISTER_THREADS /* Allow other threads to come in later. */ GC_allow_register_threads (); +#endif scm_i_pthread_mutex_unlock (&scm_i_init_mutex); }