diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2012-07-04 19:00:41 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2012-07-04 19:00:41 +0400 |
commit | 05daaeea173b81102e81ceac932a720f9359bf76 (patch) | |
tree | 4258da16337787c27cb255cf6d883b62ff65ba59 /pthread_support.c | |
parent | de328471cd1f562c47ea6c157558ba2353ef373f (diff) | |
download | bdwgc-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.c | 2 |
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)); |