On 3/31/12 9:19 AM, Lluís Batlle i Rossell wrote: > Hello, > > I have this script, that I've found to never write "DONE" in my systems, with > bash 4.0, 4.1, 4.2.. until 4.2-p20, my last test. > > However, in irc some people told me it prints DONE for them. If I run the > script with > bash under 'strace -f', it also prints DONE.
It looks like a simple race condition. I suspect that the scheduler arranges things so that the child process ends up exiting between the open and the read, but I don't have any real evidence to back it up. (Like you, my Mac OS X system prints `DONE'.) You might want to try using exec to open the FIFO in the parent process rather than trying to open it on each read. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/