Provided by: libivykis-dev_0.36.2-1_amd64 bug


       iv_timer_register, iv_timer_unregister, iv_timer_registered - 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(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.


       ivykis(3), iv_examples(3)