NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: signal handling problem
On Sunday 11 July 2010 12:37:49 Christos Zoulas wrote:
> >As written it fails to reap children (on 5.1_RC3) but if you remove the
> >"if (sigchild)" prior to the "while ((pid = waitpid..." it works.
>
> Looks like a kernel bug to me. Have you ktrace'd -i it?
Well not "-i" but I have ktrace'd the parent:
460 1 cnid_metad CALL pselect(1,0xbfbfe8f4,0,0,0,0xbfbfee38)
460 1 cnid_metad RET pselect -1 errno 4 Interrupted system call
460 1 cnid_metad CALL wait4(0xffffffff,0xbfbfee6c,1,0)
460 1 cnid_metad RET wait4 6437/0x1925
460 1 cnid_metad CALL close(2)
460 1 cnid_metad RET close 0
460 1 cnid_metad CALL wait4(0xffffffff,0xbfbfee6c,1,0)
460 1 cnid_metad RET wait4 0
460 1 cnid_metad CALL pselect(1,0xbfbfe8f4,0,0,0,0xbfbfee38)
is what it looks like in the working (without if (sigchild)) version. In
the original version (with if (sigchild)) its just
460 1 cnid_metad CALL pselect(1,0xbfbfe8f4,0,0,0,0xbfbfee38)
460 1 cnid_metad RET pselect -1 errno 4 Interrupted system call
460 1 cnid_metad CALL pselect(1,0xbfbfe8f4,0,0,0,0xbfbfee38)
so the pselect is getting interrupted its just that sigchild is not getting
set
cheers
mark
Home |
Main Index |
Thread Index |
Old Index