Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

iv_task(3) [debian man page]

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(struct iv_task *task); DESCRIPTION
The functions iv_task_register and iv_task_unregister register, respectively 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 function 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 hap- pens, 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 example, 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)

Check Out this Related Man Page

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(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 reg- istered 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)
Man Page