Somewhat related to issue #116, with some changes following the commits aimed to address that issue, behavior of EV_ONESHOT seems to have changed, correctly I believe, however. With EV_ONESHOT, the event and knote are being deleted after the event fires. Per the kevent man page and the description of EV_ONESHOT, that seems to be correct behavior:
EV_ONESHOT
Causes the event to return only the first occurrence of the filter being triggered. After the user retrieves the event from the queue, it is deleted.
So, I've change the sample program to use EV_CLEAR | EV_DISPATCH (see attached). However, now, as with the EV_ONESHOT example before it, the data field of the event does not change across calls to kevent as expected and as demonstrated on Mach / Darwin.
Somewhat related to issue #116, with some changes following the commits aimed to address that issue, behavior of
EV_ONESHOT
seems to have changed, correctly I believe, however. WithEV_ONESHOT
, the event and knote are being deleted after the event fires. Per the kevent man page and the description ofEV_ONESHOT
, that seems to be correct behavior:So, I've change the sample program to use
EV_CLEAR | EV_DISPATCH
(see attached). However, now, as with theEV_ONESHOT
example before it, the data field of the event does not change across calls tokevent
as expected and as demonstrated on Mach / Darwin.On Linux:
Note that all of the timers fire at 0.25s, which was the first data value set when the timer was first created.
On Mach/Darwin:
The events fire at the last data value pushed into the event change list for each firing iteration before waiting, correctly and as expected.