[Libevent-users] Support for Edge-Triggered behaviour
Valery Kholodkov
valery+libevent at grid.net.ru
Thu May 29 13:06:31 EDT 2008
>> This patch introduces EV_ET flag. Whenever you specify EV_ET in
>> event_set
>> call a specific module will try enforce Edge-Triggered behaviour.
>
> Well, not exactly. The way the patch is written now, when EV_ET is
> set, *and* you're using the epoll backend or the kqueue backend,
> you'll get edge-triggered behavior. Otherwise, you get regular
> behavior. I'm not sure whether this is the right API or not; it might
> make more sense for event_add to give an error when you try to add an
> EV_ET event to a backend that doesn't support EV_ET. Alternatively,
> we could define the semantics of EV_ET so that instead of meaning
> "make this event edge triggered" it means "make this event edge
> triggered if possible."
>
> (This is one of the comments on the sourceforge patch; I'm hoping we
> can discuss this more there. Niels: what do you think?)
"make this event edge triggered if possible." is exactly what I've meant.
There are two different points of view, which are better not to mix.
>From application developer's point of view EV_ET means "make this
event edge triggered if possible", since he/she/it should not be
dependent on the availability of a particular backend
(kqueue/select/poll).
>From library developer's point of view EV_ET means "make this
event edge triggered" whenever kqueue/epoll is used.
--
Best regards,
Valery Kholodkov
More information about the Libevent-users
mailing list