Christopher Layne wrote:
I understand that EV_PERSIST basically means that one does not have to
continually reschedule the event upon the event occuring.
Consider the following simple test case and my following question on it...
<snip>
Documentation for that is here:
The function event_add() schedules the execution of the ev event when
the event specified in event_set() occurs or in at least the time speci-
fied in the tv. If tv is NULL, no timeout occurs and the function
will only be called if a matching event occurs on the file descriptor.
The event in the ev argument must be already initialized by event_set()
and may not be used in calls to event_set() until it has timed out or
implies event_del() --> ^^^^^^^^^^^^^^^^^^^^^
been removed with event_del(). If the event in the ev argument already
has a scheduled timeout, the old timeout will be replaced by the new one.
Just took a bit to find it in the manpage. It might want to be more explictly
stated in the documentation.
Well, I've dealt with this before, so I'll give you the rundown.
libevent uses clock_gettime() and CLOCK_MONOTONIC within it's queues
to keep events happening across time changes on the system.
So.. To fix your implementation you will need to do something like I did.
I reimplemented libevents' gettime() function (because it's not exposed
via event.h) and use it instead of calling time(NULL);
-Phil.
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users