Excerpts from Iain Sandoe's message of September 1, 2025 6:23 pm:
> 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
What about Solaris and *BSD. Are there any outstanding PRs for druntime hanging
on those ports too? Or is specific to Darwin (or possibly emutls?).
Iain.