On 19-Apr-2007, Daniel J Sebald wrote:
| > Does it help to move the fclear before the call to sleep?
|
| No, that didn't seem to change anything. It probably doesn't matter if the
| fclear() is before or after the sleep().
|
| I think I've narrowed this down. I added a few lines of code to print out
| whenever an error == EAGAIN occurs. After about the seventh "make check", I got
| a string of numbers up to 99 at which point the test assumed failure and moved
| on. (I.e., if it doesn't happen in ten seconds, then fail.)
|
| I looked at the associated processes and found:
|
| 5313 pts/2 00:03:08 octave
| 5508 pts/2 00:00:00 sort <defunct>
|
| So, for some reason that sort process is suspending. Not sure why such a simple
| routine would fail. Some confusion in the piping and in/out streams? Maybe the
| coordination of fclose(in) and fgets(out) is off. I.e., the input stream needs
| to finish closing before the output stream is ready, if not maybe sort says "hey"?
I don't know what to suggest. It seems to work reliably for me. I'd
consider a patch.