summaryrefslogtreecommitdiff
path: root/pthread_support.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-07-04 19:00:41 +0400
committerIvan Maidanski <ivmai@mail.ru>2012-07-04 19:00:41 +0400
commit05daaeea173b81102e81ceac932a720f9359bf76 (patch)
tree4258da16337787c27cb255cf6d883b62ff65ba59 /pthread_support.c
parentde328471cd1f562c47ea6c157558ba2353ef373f (diff)
downloadbdwgc-05daaeea173b81102e81ceac932a720f9359bf76.tar.gz
Replace SIG_SUSPEND macro to a variable in pthread_stop_world
* misc.c (GC_get_suspend_signal): Define (as always returning -1) in this file only if Darwin or Win32 threads. * os_dep.c (GC_dirty_init): Replace SIG_SUSPEND with the value of GC_get_suspend_signal() invocation. * pthread_support.c (pthread_sigmask): Likewise. * pthread_stop_world.c (GC_sig_suspend): New STATIC variable (only unless NaCl or OpenBSD) initialized to SIG_SUSPEND. * pthread_stop_world.c (GC_unblock_gc_signals, GC_suspend_handler_inner, GC_suspend_all, GC_stop_init): Use GC_sig_suspend instead of SIG_SUSPEND (only unless NaCl or OpenBSD); update comment. * pthread_stop_world.c (GC_get_suspend_signal): Define function (which returns GC_sig_suspend if available).
Diffstat (limited to 'pthread_support.c')
-rw-r--r--pthread_support.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/pthread_support.c b/pthread_support.c
index ca455d76..4dad56ff 100644
--- a/pthread_support.c
+++ b/pthread_support.c
@@ -1144,7 +1144,7 @@ GC_INNER void GC_init_parallel(void)
INIT_REAL_SYMS();
if (set != NULL && (how == SIG_BLOCK || how == SIG_SETMASK)) {
fudged_set = *set;
- sigdelset(&fudged_set, SIG_SUSPEND);
+ sigdelset(&fudged_set, GC_get_suspend_signal());
set = &fudged_set;
}
return(REAL_FUNC(pthread_sigmask)(how, set, oset));