diff options
Diffstat (limited to 'win32_threads.c')
-rw-r--r-- | win32_threads.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/win32_threads.c b/win32_threads.c index 7fcee339..196bc7bf 100644 --- a/win32_threads.c +++ b/win32_threads.c @@ -2008,10 +2008,12 @@ GC_INNER void GC_get_next_stack(char *start, char *limit, # endif GC_ASSERT(I_HOLD_LOCK()); + ASSERT_CANCEL_DISABLED(); if (available_markers_m1 <= 0) return; /* Skip if parallel markers disabled or already started. */ # ifdef CAN_HANDLE_FORK if (GC_parallel) return; + GC_wait_for_gc_completion(TRUE); /* Reset mark_cv state after forking (as in pthread_support.c). */ { @@ -2181,6 +2183,7 @@ GC_INNER void GC_get_next_stack(char *start, char *limit, int i; GC_ASSERT(I_HOLD_LOCK()); + ASSERT_CANCEL_DISABLED(); if (available_markers_m1 <= 0) return; GC_ASSERT(GC_fl_builder_count == 0); |