Re: [RESEND][RFC PATCH v2] waitfd

Casey Dahlin
2009-01-10T21:21:30Z

Scott James Remnant wrote:
> On Thu, 2009-01-08 at 15:36 -0500, Casey Dahlin wrote:
>
>
>> Roland McGrath wrote:
>>
>>>>> Since waitfd shouldn't consume the child termination notification
>>>>> waitfd should be more widely usable than the wait*() interfaces.
>>>>>
>>> waitid can be used that way with WNOWAIT.
>>>
>> Yes, but waitfd does not have this flag. The reason being waitfd just
>> calls waitid internally, and there is no guarantee (afaik) that
>> calling waitid with WNOWAIT multiple times in succession will yield
>> different results each time. This breaks the streaming behavior of the
>> descriptor.
>>
>>
> This would definitely be a Nice To Have though!
>
> Being able to use waitid() on another process of the same uid, with
> WNOHANG, in a streaming fashion would be a *very* cool thing.
>
> Scott
>
That could be done in a separate patch for waitid itself, and its a
simple change to propagate it through waitfd (just one less EINVAL
case). In terms of waitfd we'd be supersetting the interface, so its no
big deal to add. In terms of waitid I'd have to check and make sure that
we wouldn't be breaking compliance by allowing it to return something
different on every call (this would likely affect cases where
waitid(WNOWAIT) was used even in a normal fashion as well).

--CJD