summaryrefslogtreecommitdiff
path: root/pthread_stop_world.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2022-04-02 22:57:01 +0300
committerIvan Maidanski <ivmai@mail.ru>2022-04-03 11:08:53 +0300
commit851cf18b802ba8286bd48cb5c288075a75eba4bd (patch)
tree7eeb6c41c01e0aa2717796af4fc9b70e083b70d5 /pthread_stop_world.c
parente2c93160805c2c434ee0bd79ce403674ba3f3dcd (diff)
downloadbdwgc-851cf18b802ba8286bd48cb5c288075a75eba4bd.tar.gz
Initialize GC_retry_signals to true in GC_stop_init
(refactoring) * pthread_stop_world.c (GC_retry_signals): Always initialize to FALSE; move comment to GC_stop_init. * pthread_stop_world.c [!GC_OPENBSD_UTHREADS && !NACL && !NO_RETRY_SIGNALS] (GC_stop_init): Set GC_retry_signals to TRUE.
Diffstat (limited to 'pthread_stop_world.c')
-rw-r--r--pthread_stop_world.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/pthread_stop_world.c b/pthread_stop_world.c
index 7ce626b4..ae5bc77b 100644
--- a/pthread_stop_world.c
+++ b/pthread_stop_world.c
@@ -142,13 +142,7 @@ STATIC volatile AO_t GC_stop_count;
/* before they are expected to stop (unless */
/* they have stopped voluntarily). */
-#ifndef NO_RETRY_SIGNALS
- /* Any platform could lose signals, so let's be conservative and */
- /* always enable signals retry logic. */
- STATIC GC_bool GC_retry_signals = TRUE;
-#else
- STATIC GC_bool GC_retry_signals = FALSE;
-#endif
+STATIC GC_bool GC_retry_signals = FALSE;
/*
* We use signals to stop threads during GC.
@@ -1404,6 +1398,11 @@ GC_INNER void GC_stop_init(void)
if (sigdelset(&suspend_handler_mask, GC_sig_thr_restart) != 0)
ABORT("sigdelset failed");
+# ifndef NO_RETRY_SIGNALS
+ /* Any platform could lose signals, so let's be conservative and */
+ /* always enable signals retry logic. */
+ GC_retry_signals = TRUE;
+# endif
/* Override the default value of GC_retry_signals. */
str = GETENV("GC_RETRY_SIGNALS");
if (str != NULL) {
@@ -1418,6 +1417,7 @@ GC_INNER void GC_stop_init(void)
GC_COND_LOG_PRINTF(
"Will retry suspend and restart signals if necessary\n");
}
+
# ifndef NO_SIGNALS_UNBLOCK_IN_MAIN
/* Explicitly unblock the signals once before new threads creation. */
GC_unblock_gc_signals();