diff options
Diffstat (limited to 'pthread_support.c')
-rw-r--r-- | pthread_support.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pthread_support.c b/pthread_support.c index 379848c3..2694ec80 100644 --- a/pthread_support.c +++ b/pthread_support.c @@ -754,7 +754,8 @@ STATIC void GC_remove_all_threads_but_me(void) me = 0; for (p = GC_threads[hv]; 0 != p; p = next) { next = p -> next; - if (THREAD_EQUAL(p -> id, self)) { + if (THREAD_EQUAL(p -> id, self) + && me == NULL) { /* ignore dead threads with the same id */ me = p; p -> next = 0; # ifdef GC_DARWIN_THREADS |