Hello ! Sometime, my progam calls open-input-pipe and the forked child hangs waiting for a lock (so after the fork but before executing the command).
So I read the code for open-process, especially what happens between the fork and the execlp, and I noticed several potential problems : - all ports are closed, but what about other open files that are not ports ? My application opens many files in C that are not known to guile. Shouldn't these be closed as well ? - what if when forking some other guile thread hold one of the internal lock (for instance, the lock protecting the port table) ? Then the code between the fork and the exec (which loop on all ports, amongst other things) may try to grab this internal mutex, deadlocking. Any thoughs?