Subject: bug#52646: GC thread freeze

From: Mathieu Othacehe <[email-masked]>
Date: Wed, 22 Dec 2021 10:15:06 +0100

Hey!

> This is happening in this order, right?

Right, plus I don't see the following warning:

--8<---------------cut here---------------start------------->8---
warning: call to primitive-fork while multiple threads are running;
         further behavior unspecified.  See "Processes" in the
         manual, for more information
--8<---------------cut here---------------end--------------->8---

so I guess the issue is elsewhere.

> POSIX leaves unspecified the behavior of a child process forked from a
> multi-threaded process; there could be deadlocks, etc.  ‘primitive-fork’
> prints a warning when called from a multi-threaded Guile process.
>
> The solution is for multi-threaded Guile processes to not fork at all,
> or to fork only via ‘open-pipe*’, ‘system*’, etc., which are “known
> good” (they take care of post-fork handling in the child and call ‘exec’
> before anything bad could happen.)

Thanks for clarifying that anyway.

Mathieu