start_mark_threads refactoring regarding GC_markers_m1 update (Win32)
authorIvan Maidanski <ivmai@mail.ru>
Fri, 4 Mar 2016 22:11:05 +0000 (01:11 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 4 Mar 2016 22:14:03 +0000 (01:14 +0300)
(Sync semantics around GC_markers_m1 with that of pthread_support.c.)
(fix commit 95947bd)

* win32_threads.c (GC_start_mark_threads_inner): Update GC_markers_m1
value to i just after loop creating the threads.

win32_threads.c

index 614d5e8..91d6da2 100644 (file)
@@ -1812,6 +1812,7 @@ GC_INNER void GC_get_next_stack(char *start, char *limit,
           break;
         }
       }
+      GC_markers_m1 = i;
 
 #     ifndef NO_MARKER_SPECIAL_SIGMASK
         /* Restore previous signal mask.        */
@@ -1821,7 +1822,6 @@ GC_INNER void GC_get_next_stack(char *start, char *limit,
         }
 #     endif
 
-      GC_markers_m1 = i;
       (void)pthread_attr_destroy(&attr);
       GC_wait_for_markers_init();
       GC_COND_LOG_PRINTF("Started %d mark helper threads\n", GC_markers_m1);