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] |  |