Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
iv_timer(3)		  ivykis programmer's manual		   iv_timer(3)

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

DESCRIPTION
       The functions iv_timer_register and iv_timer_unregister	register,  re-
       spectively  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	 ->ex-
       pires  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 transpar-
       ently 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	regis-
       tered 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)

ivykis				  2010-08-15			   iv_timer(3)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=iv_timer_register&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help