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

FreeBSD Manual Pages

  
 
  

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

NAME
       iv_task_register,  iv_task_unregister,  iv_task_registered  - deal with
       ivykis tasks

SYNOPSIS
       #include	<iv.h>

       struct iv_task {
	       void	       *cookie;
	       void	       (*handler)(void *);
       };

       void IV_TASK_INIT(struct	iv_task	*task);
       void iv_task_register(struct iv_task *task);
       void iv_task_unregister(struct iv_task *task);
       int iv_task_registered(const struct iv_task *task);

DESCRIPTION
       The functions iv_task_register and iv_task_unregister register, respec-
       tively unregister, a task with the current thread's ivykis event	 loop.
       iv_task_registered  on  a  task	returns	true if	that task is currently
       registered with ivykis.

       A task is like a	timer, but with	an immediate timeout.  When a task  is
       registered,  unless  it is unregistered again first, the	callback func-
       tion specified by ->handler is guaranteed to be	called	once,  in  the
       thread that the task was	registered in, some time after control returns
       to  the	ivykis main loop but before ivykis will	sleep for more events,
       with ->cookie as	its first and sole argument.  When this	 happens,  the
       task is transparently unregistered.

       Tasks are mainly	used for scheduling code for execution where it	is not
       appropriate to directly run that	code in	the calling context (for exam-
       ple,  because  the  current context might be run	as a callback function
       where the caller	expects	certain	conditions to remain  invariant	 after
       the callback completes).

       The application is allowed to change the	->cookie and ->handler members
       at any time.

       A  given	struct iv_task can only	be registered in one thread at a time,
       and a task can only be unregistered in the thread that  it  was	regis-
       tered from.

       There is	no limit on the	number of tasks	registered at once.

       See iv_examples(3) for programming examples.

SEE ALSO
       ivykis(3), iv_examples(3)

ivykis				  2010-08-15			    iv_task(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=iv_task&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help