sigevent

SIGEVENT(3)               BSD Library Functions Manual               SIGEVENT(3)

NAME
     sigevent — asynchronous event notification

SYNOPSIS
     #include <signal.h>

DESCRIPTION
     Some operations permit threads to request asychronous notification of
     events via a struct sigevent structure.  This structure contains several
     fields that describe the requested notification:

     Type                      Member                       Description
     int                       sigev_notify                 notification method
     int                       sigev_signo                  signal number
     union sigval              sigev_value                  signal value
     int                       sigev_notify_kqueue          kqueue(2) file
                                                            descriptor
     unsigned short            sigev_notify_kevent_flags    kevent flags
     lwpid_t                   sigev_notify_thread_id       LWP ID
     void (*)(union sigval)    sigev_notify_function        callback function
                                                            pointer
     pthread_attr_t *          sigev_notify_attributes      callback thread
                                                            attributes

     The sigev_notify field specifies the notification method used when the
     event triggers:

     SIGEV_NONE       No notification is sent.

     SIGEV_SIGNAL     The signal sigev_signo is queued as a real-time signal to
                      the calling process.  The value stored in sigev_value will
                      be present in the si_value of the siginfo_t structure of
                      the queued signal.

     SIGEV_THREAD     The notification function in sigev_notify_function is
                      called in a separate thread context.  The thread is
                      created with the attributes specified in
                      *sigev_notify_attributes.  The value stored in sigev_value
                      is passed as the sole argument to sigev_notify_function.
                      If sigev_notify_attributes is NULL, the thread is created
                      with default attributes.

     SIGEV_KEVENT     A new kevent is posted to the kqueue sigev_notify_kqueue.
                      The udata member of the kevent structure contains the
                      value stored in sigev_value.  The meaning of other fields
                      in the kevent are specific to the type of triggered event.

     SIGEV_THREAD_ID  The signal sigev_signo is queued to the thread whose LWP
                      ID is sigev_notify_thread_id.  The value stored in
                      sigev_value will be present in the si_value of the
                      siginfo_t structure of the queued signal.

NOTES
     Note that programs wishing to use SIGEV_THREAD notifications must link
     against the POSIX Real-time Library (librt, -lrt).

SEE ALSO
     aio_read(2), mq_notify(2), timer_create(2), siginfo(3)

STANDARDS
     The struct sigevent type conforms to IEEE Std 1003.1-2004 (“POSIX.1”).

BSD                               July 15, 2016                              BSD