iv_timer - Man Page

deal with ivykis timers


#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(const struct iv_timer *timer);


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)

Referenced By

iv_examples(3), ivykis(3).

The man pages iv_timer_register(3), iv_timer_registered(3) and iv_timer_unregister(3) are aliases of iv_timer(3).

2010-08-15 ivykis programmer's manual