iv_event_register man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

iv_event(3)		  ivykis programmer's manual		   iv_event(3)

NAME
       IV_EVENT_INIT,  iv_event_register, iv_event_unregister, iv_event_post -
       manage ivykis objects for event notification

SYNOPSIS
       #include <iv_event.h>

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

       int IV_EVENT_INIT(struct iv_event *this);
       int iv_event_register(struct iv_event *this);
       void iv_event_unregister(struct iv_event *this);
       void iv_event_post(struct iv_event *this);

DESCRIPTION
       iv_event provides a way for delivering events to	 ivykis(3)  recipients
       across thread boundaries.

       The  intended  event recipient calls IV_EVENT_INIT on a struct iv_event
       object, fills in ->cookie and ->handler, and then calls iv_event_regis‐
       ter on the object.

       To  generate an event, call iv_event_post on the previously initialized
       struct iv_event object.	This will  cause  the  callback	 specified  by
       ->handler  to  be  called in the thread that the struct iv_event object
       was registered in, with ->cookie as its sole argument.

       To deinitialize a struct iv_event object, call iv_event_unregister from
       the same thread that iv_event_register was called from on that object.

       It  is permitted to unregister a struct iv_event object from any ivykis
       callback function in the thread it was registered in, including from  a
       callback function triggered by this object, and it is permitted to free
       the memory corresponding to an unregistered object from its  own	 call‐
       back function.

       iv_event_post can be called from the same thread that iv_event_register
       was called from, or from a different thread within  the	same  process,
       but  can	 not be called from a different process, and can not be called
       from  signal  handlers.	 If  you  need	this  functionality,  look  at
       iv_event_raw(3).

       Internally,    iv_event	  is   implemented   as	  a   wrapper	around
       iv_event_raw(3), and multiplexes multiple struct iv_event objects  over
       per-thread  struct  iv_event_raw	 objects, to save file descriptors and
       kernel resources.

SEE ALSO
       ivykis(3), iv_event_raw(3)

ivykis				  2010-09-03			   iv_event(3)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net