Messages in this thread | | | Subject | Re: [RESEND][RFC PATCH v2] waitfd | From | Scott James Remnant <> | Date | Sat, 10 Jan 2009 14:47:43 +0000 |
| |
On Wed, 2009-01-07 at 18:19 +0100, Oleg Nesterov wrote:
> Please note that unlike other sys_...fd() syscalls, sys_waitfd() > doesn't allow to pass O_CLOEXEC. Looks like we need a separate > "flags" argument... > > Also, ioctl(FIONBIO) or fcntl(O_NONBLOCK) have no effect on > waitfd, not very good. > > I'd suggest to remove WNOHANG from waitfd_ctx->ops and treat > (->f_flags & O_NONBLOCK) as WNOHANG. > > (can't resist, ->ops is not the best name ;) > Definitely agree here, waitfd() doesn't need WNOHANG - we already have ONONBLOCK.
That also solves one of the strangest behaves of waitid when you use WNOHANG (it returns zero and you have to check whether it changed the struct), now you just read() - if no child you get EAGAIN, if a child you read a struct.
Scott -- Scott James Remnant scott@canonical.com [unhandled content-type:application/pgp-signature] | |