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