IV_SIGNAL_INIT 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_signal(3)		  ivykis programmer's manual		  iv_signal(3)

NAME
       IV_SIGNAL_INIT,	iv_signal_register, iv_signal_unregister - ivykis sig‐
       nal handling

SYNOPSIS
       #include <iv_signal.h>

       struct iv_signal {
	       int	       signum;
	       unsigned int    flags;
	       void	       *cookie;
	       void	       (*handler)(void *);
       };

       void IV_SIGNAL_INIT(struct iv_signal *this);
       int iv_signal_register(struct iv_signal *this);
       void iv_signal_unregister(struct iv_signal *this);

DESCRIPTION
       iv_signal provides a way for ivykis(3)  applications  to	 handle	 POSIX
       signals, by integrating them with the ivykis event loop.

       An  ivykis  application desiring signal notification registers a struct
       iv_signal object	 by  calling  iv_signal_register,  after  having  ini‐
       tialised	 it  with IV_SIGNAL_INIT and subsequently having filled in the
       ->signum, ->cookie and ->handler members.

       Once the signal indicated by ->signum is delivered to any thread in the
       current process, the callback specified by ->handler is scheduled to be
       called in the thread that the struct iv_signal  object  was  registered
       in, with ->cookie as its sole argument.

       If  the	same signal arrives again while the callback function is still
       running, the callback function is guaranteed to be called  again	 after
       it returns.

       It  is  permitted to register multiple struct iv_signal objects for the
       same signal number.  If all such objects are  registered	 with  IV_SIG‐
       NAL_FLAG_EXCLUSIVE  in  ->flags unset, then all objects will have their
       callback functions called upon arrival of the signal, in no  guaranteed
       order.

       Invoking	 callback functions stops at the first struct iv_signal object
       with IV_SIGNAL_FLAG_EXCLUSIVE in ->flags set, so that  if  all  objects
       have  IV_SIGNAL_FLAG_EXCLUSIVE  set, only one callback function will be
       invoked.

       To deinitialize a struct iv_signal  object,  call  iv_signal_unregister
       from  the  same	thread that iv_signal_register was called from on that
       object.

       It is permitted to unregister a struct iv_signal 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.

       It is guaranteed that signals delivered to child	 processes  that  were
       created	by  fork(2)  but  that	have not yet called execve(2) will not
       cause iv_signal callbacks to be invoked in the parent process.

       Internally, iv_signal is implemented using iv_event_raw(3).

SEE ALSO
       ivykis(3), iv_event_raw(3), sigaction(2)

ivykis				  2010-09-03			  iv_signal(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