Man

Command Section
SIGEVENT(3)            FreeBSD 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)(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'').

FreeBSD 11.1-RELEASE-p4          July 15, 2016         FreeBSD 11.1-RELEASE-p4
Command Section