SIGEVENT(3) FreeBSD Library Functions Manual SIGEVENT(3)
NAME
sigevent - asynchronous event notification
SYNOPSIS
#include <signal.h>
DESCRIPTION
Some operations permit threads to request asynchronous 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").
HISTORY
The sigevent structure first appeared in FreeBSD 3.3.
FreeBSD 13.1-RELEASE-p6 February 25, 2020 FreeBSD 13.1-RELEASE-p6
man2web Home...