From: Yves <yme...@pe...> - 2004-11-26 14:56:54
|
> Yves, > > I've done an strace, results are attached. Changing &tm to NULL did > not change anything. Well, here is what your perfparsed does when doing nothing : select(6, [4 5], NULL, NULL, NULL) =3D 1 (in [4]) rt_sigprocmask(SIG_BLOCK, [INT TERM], [], 8) =3D 0 read(4, "", 10) =3D 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) =3D 0 wait4(-1, NULL, WNOHANG, NULL) =3D -1 ECHILD (No child processes= ) In other words, there is always something to read on the 4th file descrip= tor (1st line), even if we see on the 3rd line that it reads nothing. There is an additionnal test that you could maybe do, still in log_reader= .c. You can find in open_log_source a big test : if(!strcmp(filename,"-")) { ... } else if(filename[0] =3D=3D '>') { ... } else if(filename[0] =3D=3D '|') { ... log_source_nonblock(i); ... } else { ... } Could you comment that log_source_nonblock(i), and only that one ? I hope this is the fix. Otherwise, I will have to find why, when there is= nothing to read on the pipe, why it considers there is something to read anyways. Note : per...@li... is the mailing-list for the core = developers, including Ben. If you don't mind, answer with that list in CC :) Yves --=20 - Homepage - http://ymettier.free.fr - http://www.logicacmg.com - - GPG key - http://ymettier.free.fr/gpg.txt - - Maitretarot - http://www.nongnu.org/maitretarot/ - - Perfparse - http://perfparse.sf.net/ - |