Hi,

Andy Wingo <wi...@pobox.com> skribis:

>     +  if (scm_ilength (scm_all_threads ()) != 1)
>     +    /* Other threads may be holding on to resources that Guile needs --
>     +       it is not safe to permit one thread to fork while others are
>     +       running.
>     +
>     +       In addition, POSIX clearly specifies that if a multi-threaded
>     +       program forks, the child must only call functions that are
>     +       async-signal-safe.  We can't guarantee that in general.  The best
>     +       we can do is to allow forking only very early, before any call to
>     +       sigaction spawns the signal-handling thread.  */
>     +    SCM_MISC_ERROR ("attempt to fork while multiple threads are running",
>     +                    SCM_EOL);

Just like fork(2) lets one shoot themself in the foot, I think this is
beyond libguile’s scope.  After all, libguile just wraps the OS
features, however crippled they may be.

Ludo’.


Reply via email to