Re: [PATCH-RFC 2/2] eventfd: EFD_STATE flag

Avi Kivity
2009-08-04T09:12:26Z

On 08/04/2009 11:54 AM, Michael S. Tsirkin wrote:
> On Tue, Aug 04, 2009 at 11:53:03AM +0300, Avi Kivity wrote:
>
>> On 08/03/2009 07:57 PM, Michael S. Tsirkin wrote:
>>
>>>> Why not do it at the point of the write?
>>>>
>>>> if (value != ctx->count) {
>>>> ctx->count = value;
>>>> wake_things_up();
>>>> }
>>>>
>>>>
>>> What if write comes before read?
>>>
>>>
>> The read will get the new value.
>>
>
> Yes :) But how does read know it should not block?
>

If a different read comes after the write but after our read, it will
have transferred the value, resulting in the same situation.

I think reads should never block with a state based mechanism.

--
error compiling committee.c: too many arguments to function