On Sat, Oct 17, 2009 at 01:53:55PM -0400, Mikhail T. wrote: > Kostik Belousov написав(ла): > > Take ktrace of both parent and child. > > > I can see the curious piece right here: > > The child exits: > > 92723 tclsh8.5 CALL exit(0) > > The parent masks SIGPIPE (as part of my workaround): > > 92722 tclsh8.5 CALL sigaction(SIGPIPE,0x7fffffffa9e0,0) > 92722 tclsh8.5 RET sigaction 0 > > This 0-size write must be part of the pipe-closing -- descriptors 4 and > 5 must be the pipe's: > > 92722 tclsh8.5 CALL write(0x4,0x800e24028,0) > 92722 tclsh8.5 RET write -1 errno 32 Broken pipe > 92722 tclsh8.5 PSIG SIGPIPE caught handler=0x800f126d0 mask=0x0 code=0x0 > 92722 tclsh8.5 CALL sigreturn(0x7fffffffa0c0) > 92722 tclsh8.5 RET sigreturn JUSTRETURN > 92722 tclsh8.5 CALL close(0x5) > 92722 tclsh8.5 RET close 0 > 92722 tclsh8.5 CALL close(0x4) > 92722 tclsh8.5 RET close 0 > > Why would it write 0 bytes? Is doing so triggering a SIGPIPE now -- but, > perhaps, didn't use to?
Obviously, I cannot answer the question. This is something that should be read from source code or asked by authors.
pgpgDQxjtN6v2.pgp
Description: PGP signature