sigevent — structure for notification from asynchronous routines
/* Data passed with notification */
/* Integer value */
/* Pointer value */
/* Notification method */
/* Notification signal */
/* Data passed with
/* Function used for thread
notification (SIGEV_THREAD) */
/* Attributes for notification thread
/* ID of thread to signal (SIGEV_THREAD_ID) */
sigevent structure is
used by various APIs to describe the way a process is to be
notified about an event (e.g., completion of an asynchronous
request, expiration of a timer, or the arrival of a
The definition shown in the SYNOPSIS is approximate: some
of the fields in the
structure may be defined as part of a union. Programs should
employ only those fields relevant to the value specified in
field specifies how notification is to be performed. This
field can have one of the following values:
A "null" notification: don't do anything when the event occurs.
Notify the process by sending the signal specified
If the signal is caught with a signal handler that
was registered using the sigaction(2)
SA_SIGINFO flag, then the
following fields are set in the
siginfo_t structure that is passed
as the second argument of the handler:
This field is set to a value that depends on the API delivering the notification.
This field is set to the signal number (i.e., the same value as in
This field is set to the value specified in
Depending on the API, other fields may also be set
The same information is also available if the signal is accepted using sigwaitinfo(2).
Notify the process by invoking
if" it were the start function of a new thread. (Among
the implementation possibilities here are that each
timer notification could result in the creation of a
new thread, or that a single thread is created to
receive all notifications.) The function is invoked
sigev_value as its sole
is not NULL, it should point to a
pthread_attr_t structure that
defines attributes for the new thread (see pthread_attr_init(3)).
Currently used only by POSIX timers; see timer_create(2).
This page is part of release 4.07 of the Linux
man-pages project. A
description of the project, information about reporting bugs,
and the latest version of this page, can be found at
Copyright (C) 2006, 2010 Michael Kerrisk <mtk.manpagesgmail.com>
Copyright (C) 2009 Petr Baudis <paskysuse.cz>
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Since the Linux kernel and libraries are constantly changing, this
manual page may be incorrect or out-of-date. The author(s) assume no
responsibility for errors or omissions, or for damages resulting from
the use of the information contained herein. The author(s) may not
have taken the same level of care in the production of this manual,
which is licensed free of charge, as they might when working
Formatted or processed versions of this manual, if unaccompanied by
the source, must acknowledge the copyright and authors of this work.