summaryrefslogtreecommitdiff
path: root/pthread_stop_world.c
diff options
context:
space:
mode:
Diffstat (limited to 'pthread_stop_world.c')
-rw-r--r--pthread_stop_world.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/pthread_stop_world.c b/pthread_stop_world.c
index 244731e4..1ee9ee8f 100644
--- a/pthread_stop_world.c
+++ b/pthread_stop_world.c
@@ -433,8 +433,9 @@ STATIC void GC_restart_handler(int sig)
/* TODO: Support GC_retry_signals */
switch (RAISE_SIGNAL(t, GC_sig_suspend)) {
case ESRCH:
- /* Not really there anymore. Possible? */
- t -> flags &= ~SUSPENDED_EXT;
+ /* Not really there anymore (terminated but not joined yet). */
+ /* No need to wait but leave the suspension flag on. */
+ GC_ASSERT((t -> flags & FINISHED) != 0);
UNLOCK();
return;
case 0: