[m-rev.] diff: Disable parallel marking on Windows.

Peter Wang novalazy at gmail.com
Thu Aug 27 17:20:40 AEST 2015


Branches: master, 14.01

Disable Boehm GC parallel marking support on Windows for now as it is
broken on Windows 7+.  The problem is fixed in bdwgc commit 57cc049,
whose log message states:

    NT SignalObjectAndWait is broken in Windows 7+ leading to a
    deadlock sometimes because the function is no longer atomic

Alternatively, we could define DONT_USE_SIGNALANDWAIT to force an
implementation that does not use SignalObjectAndWait; that is
essentially what commit 57cc049 does.  However, there might be more
fixes required and we should be upgrading the GC anyway.

configure.ac:
	As above.

diff --git a/configure.ac b/configure.ac
index 76408fd..20fa6b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3161,7 +3161,9 @@ case "$host" in
             *)
                 CFLAGS_FOR_THREADS="$WIN32_GC_THREADLIB"
                 ENABLE_BOEHM_THREAD_LOCAL_ALLOC="-DTHREAD_LOCAL_ALLOC"
-                ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
+                # Disable parallel marking on Windows until next upgrade.
+                # It is broken on Windows 7+ (see bdwgc commit 57cc049).
+                # ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
                 ;;
         esac
         # avoid_sbrk?
@@ -3191,7 +3193,8 @@ case "$host" in
                     THREAD_LIBS=
                 fi
                 ENABLE_BOEHM_THREAD_LOCAL_ALLOC="-DTHREAD_LOCAL_ALLOC"
-                ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
+                # Disable parallel marking on Windows until next upgrade.
+                # ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
                 ;;
         esac
         ;;
@@ -3200,7 +3203,8 @@ case "$host" in
         CFLAGS_FOR_THREADS="$WIN32_GC_THREADLIB"
         THREAD_LIBS="-lpthread"
         ENABLE_BOEHM_THREAD_LOCAL_ALLOC="-DTHREAD_LOCAL_ALLOC"
-        ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
+        # Disable parallel marking on Windows until next upgrade.
+        # ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
         ;;
 
     *apple*darwin*)
-- 
2.1.2




More information about the reviews mailing list