diff options
Diffstat (limited to 'pthread_stop_world.c')
-rw-r--r-- | pthread_stop_world.c | 5 |
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: |