In use for 2 years or so on Darwin branches, OK for trunk?
thanks
Iain

--- 8< ---

The collect fork version has two issues on Darwin, first that it seems
to hang quite frequently and second that ___fork() is not available on
all OS versions.  The remedy here is to avoid its use, for now.

---
 .../libdruntime/core/internal/gc/impl/conservative/gc.d  | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d 
b/libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
index 64b5bed43b1..0cf0a0d9523 100644
--- a/libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
+++ b/libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
@@ -30,8 +30,13 @@ module core.internal.gc.impl.conservative.gc;
 
 /***************************************************/
 version = COLLECT_PARALLEL;  // parallel scanning
-version (Posix)
-    version = COLLECT_FORK;
+version (GNU)
+{
+  version (linux)
+    version = COLLECT_FORK;  // uses clone(), battle tested and reliable
+}
+else version (Posix)
+  version = COLLECT_FORK;
 
 import core.internal.gc.bits;
 import core.internal.gc.os;
-- 
2.39.2 (Apple Git-143)

Reply via email to