NAME¶
iv_timer_register, iv_timer_unregister, iv_timer_registered - deal with ivykis
timers
SYNOPSIS¶
#include <iv.h>
struct iv_timer {
struct timespec expires;
void *cookie;
void (*handler)(void *);
};
void IV_TIMER_INIT(struct iv_timer *timer);
void iv_timer_register(struct iv_timer *timer);
void iv_timer_unregister(struct iv_timer *timer);
int iv_timer_registered(struct iv_timer *timer);
DESCRIPTION¶
The functions
iv_timer_register and
iv_timer_unregister register,
respectively unregister, a timer with the current thread's ivykis event loop.
iv_timer_registered on a timer returns true if that timer is currently
registered with ivykis.
When a timer that is registered becomes 'ready', due to the current system clock
value becoming greater than or equal to the timer's
->expires member
field, the callback function specified by
->handler is called in the
thread that the timer was registered in, with
->cookie as its first
and sole argument. When this happens, the timer is transparently unregistered.
The application is allowed to change the
->cookie and
->handler members at any time. The application is not allowed to
change the
->expires member while the timer is registered.
A given
struct iv_timer can only be registered in one thread at a time,
and a timer can only be unregistered in the thread that it was registered
from.
There is no limit on the number of timers registered at once.
See
iv_examples(3) for programming examples.
SEE ALSO¶
ivykis(3),
iv_examples(3)