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’.