Ever since the introduction of EXT:RUN-PROGRAM, ECL was experiencing random deadlocks when executing other programs. The reason for that was that the external process ended before ECL was able of calling sigwait() and retrieve its exit code --- the SIGPIPE arrived, but ECL had not yet finished constructing the external process structure and got lost.<div>

<br></div><div>I have finally solved this stupid problem by synchronizing the child and the parent processes: using a pipe, the parent holds the child until the process structure is recorded with ECL. From that time on, ECL can keep track of the SIGPIPE POSIX signal that announces the end of the child process, providing the exit code.</div>

<div><br></div><div>This fixes one of the most annoying bugs I ever faced -- 1 year and a half to come up with a solution, wow.</div><div><br></div><div>Juanjo<br clear="all"><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>

c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>
</div>