tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: wait(2) and SIGCHLD



	Hello.  I'm not sure I've completely understood your question, but I
think you're confusing the issue of whether a child posts a SIGCHLD signal
when it exits versus whether the current process that's calling wait(2)
receives a SIGCHLD when a child exits.  The default behavior, as I
understand it, is that if a process has children, by default, it will not
get signaled if those children terminate.  However, if that process then
calls wait(2), it will hang until a child terminates, regardless of whether
it's configured to receive the SIGCHLD or not.  In that instance, I think
the man page is wrong, at least if code I have running is to be believed.  So,
I think there's no difference between the default ignoring of the SIGCHLD
signal and explicitly ignoring it.
-Brian

On Aug 14,  1:51pm, Edgar =?iso-8859-1?B?RnXf?= wrote:
} Subject: wait(2) and SIGCHLD
} I'm confused regarding the behaviour of wait(2) wrt. SIGCHLD handling.
} 
} The wait(2) manpage says:
} 
} 	wait() will fail and return immediately if:
} 	[ECHILD]	The calling process has no existing unwaited-for child
} 			processes; or no status from the terminated child
} 			process is available because the calling process has
} 			asked the system to discard such status by ignoring
} 			the signal SIGCHLD or setting the flag SA_NOCLDWAIT
} 			for that signal.
} 
} However, ignore is the default handler for SIGCHLD.
} 
} So does the
} 	because the calling process has asked the system
} 	to discard such status by ignoring the signal SIGCHLD
} mean that explicitly ignoring SIGCHLD is different from ignoring it per default?
>-- End of excerpt from Edgar =?iso-8859-1?B?RnXf?=




Home | Main Index | Thread Index | Old Index