diff options
Diffstat (limited to 'libguile/scmsigs.c')
-rw-r--r-- | libguile/scmsigs.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index 697cc7072..82522b57a 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -43,11 +43,11 @@ #include <full-write.h> #include "async.h" -#include "bdw-gc.h" #include "boolean.h" #include "dynwind.h" #include "eval.h" #include "feature.h" +#include "gc-internal.h" #include "gsubr.h" #include "list.h" #include "modules.h" @@ -161,11 +161,8 @@ signal_delivery_thread (void *data) #if HAVE_PTHREAD_SIGMASK /* not on mingw, see notes above */ sigset_t all_sigs; sigfillset (&all_sigs); - /* On libgc 7.1 and earlier, GC_do_blocking doesn't actually do - anything. So in that case, libgc will want to suspend the signal - delivery thread, so we need to allow it to do so by unmasking the - suspend signal. */ - sigdelset (&all_sigs, GC_get_suspend_signal ()); + if (gc_safepoint_mechanism() == GC_SAFEPOINT_MECHANISM_SIGNAL) + sigdelset (&all_sigs, gc_safepoint_signal_number()); scm_i_pthread_sigmask (SIG_SETMASK, &all_sigs, NULL); #endif |