Re: [RESEND][RFC PATCH v2] waitfd

Scott James Remnant
2009-01-10T14:47:44Z

[-- Attachment #1: Type: text/plain, Size: 847 bytes --]

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

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]