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
library “librt”.
SEE ALSO
STANDARDS
The struct sigevent type conforms to IEEE Std 1003.1-2004 (“POSIX.1”).