sigevent.3 revision 367457
-*- nroff -*-

Copyright (c) 2016 John H. Baldwin <jhb@FreeBSD.org>

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

$FreeBSD: stable/11/share/man/man3/sigevent.3 367457 2020-11-07 18:10:59Z dim $

.Dd July 15, 2016 .Dt SIGEVENT 3 .Os .Sh NAME .Nm sigevent .Nd "asynchronous event notification" .Sh SYNOPSIS n signal.h .Sh DESCRIPTION Some operations permit threads to request asychronous notification of events via a .Vt struct sigevent structure. This structure contains several fields that describe the requested notification: l -column ".Vt void (*)(union sigval)" ".Va sigev_notify_kevent_flags" t Sy Type Ta Sy Member Ta Sy Description t Vt int Ta sigev_notify Ta notification method t Vt int Ta sigev_signo Ta signal number t Vt union sigval Ta sigev_value Ta signal value t Vt int Ta sigev_notify_kqueue Ta .Xr kqueue 2 file descriptor t Vt unsigned short Ta sigev_notify_kevent_flags Ta kevent flags t Vt lwpid_t Ta sigev_notify_thread_id Ta LWP ID t Vt void (*)(union sigval) Ta sigev_notify_function Ta callback function pointer t Vt pthread_attr_t * Ta sigev_notify_attributes Ta callback thread attributes .El

p The .Va sigev_notify field specifies the notification method used when the event triggers: l -tag -width ".Dv SIGEV_THREAD_ID" t Dv SIGEV_NONE No notification is sent. t Dv SIGEV_SIGNAL The signal .Va sigev_signo is queued as a real-time signal to the calling process. The value stored in .Va sigev_value will be present in the .Va si_value of the .Vt siginfo_t structure of the queued signal. t Dv SIGEV_THREAD The notification function in .Va sigev_notify_function is called in a separate thread context. The thread is created with the attributes specified in .Va *sigev_notify_attributes . The value stored in .Va sigev_value is passed as the sole argument to .Va sigev_notify_function . If .Va sigev_notify_attributes is .Dv NULL , the thread is created with default attributes. t Dv SIGEV_KEVENT A new kevent is posted to the kqueue .Va sigev_notify_kqueue . The .Va udata member of the kevent structure contains the value stored in .Va sigev_value . The meaning of other fields in the kevent are specific to the type of triggered event. t Dv SIGEV_THREAD_ID The signal .Va sigev_signo is queued to the thread whose LWP ID is .Va sigev_notify_thread_id . The value stored in .Va sigev_value will be present in the .Va si_value of the .Vt siginfo_t structure of the queued signal. .El .Sh NOTES Note that programs wishing to use .Dv SIGEV_THREAD notifications must link against the .Lb librt . .Sh SEE ALSO .Xr aio_read 2 , .Xr mq_notify 2 , .Xr timer_create 2 , .Xr siginfo 3 .Sh STANDARDS The .Vt struct sigevent type conforms to .St -p1003.1-2004 .