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)