On 06.11.2016 11:53, Kamil Rytarowski wrote: > > > On 06.11.2016 11:42, Robert Elz wrote: >> Date: Sun, 6 Nov 2016 10:39:22 +0100 >> From: Nicolas Joly <njoly%pasteur.fr@localhost> >> Message-ID: <20161106093922.GA10433%issan.sis.pasteur.fr@localhost> >> >> | Just tested it on 7.0.2 NetBSD/amd64 under qemu, and it works as >> | expected. Looks like a -current regression. >> >> In -current, the primary wait*() interface is wait6() - which is >> posix waitid() (also available) plus the extra args needed to allow >> it to also implement wait() wait3() waitpid() and wait4(). >> >> Posix is less clear on whether waitid() is supposed to return 0 or >> ECHILD when WNOHANG is set, and there are no (applicable) children >> (none that match the pid/flags specified - which includes no children >> at all of course.) >> >> If WNOHANG was specified and status is not available for any >> process specified by idtype and id, 0 shall be returned. >> >> but also ... >> >> [ECHILD] >> The calling process has no existing unwaited-for child processes. >> >> but generally, the error values only apply when the sys call is stated >> to return an error, which waitid() does not specify when WNOHANG is >> set (unlike it does for waitpid()). >> >> We haven't yet switched to implementing wait4() (and the other older calls >> all of which use the wait4() interface) via wait6(), so the question now >> is, does this get changed just for the wait4() interface, or for wait6() >> (and hence waitid()) as well. >> >> kre >> > > I will extend our ATF tests to validate it. > > In general the new behavior seems to be working as intended and is > reproducible on other major OSes. > I was wrong, it works without triggered assert(3) on Linux, I will try to investigate it.
Attachment:
signature.asc
Description: OpenPGP digital signature