Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SIGWAIT(2)		       System Calls Manual		      SIGWAIT(2)

NAME
     sigwait -- select a set of signals

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <signal.h>

     int
     sigwait(const sigset_t * restrict set, int * restrict sig);

DESCRIPTION
     The  sigwait()  system call selects a set of signals, specified by set.  If
     none of the selected signals are pending, sigwait() waits until one or more
     of the selected signals has  been	generated.   Then  sigwait()  atomically
     clears one of the selected signals from the set of pending signals (for the
     process  or for the current thread) and sets the location pointed to by sig
     to the signal number that was cleared.

     The signals specified by set should be blocked at the time of the	call  to
     sigwait().

     If  more than one thread is using sigwait() to wait for the same signal, no
     more than one of these threads will return from sigwait() with  the  signal
     number.   If more than a single thread is blocked in sigwait() for a signal
     when that signal is generated for the process, it is unspecified  which  of
     the waiting threads returns from sigwait().  If the signal is generated for
     a specific thread, as by pthread_kill(), only that thread will return.

     Should  any  of  the  multiple  pending  signals  in  the range SIGRTMIN to
     SIGRTMAX be selected, it will be the lowest numbered  one.   The  selection
     order  between realtime and non-realtime signals, or between multiple pend-
     ing non-realtime signals, is unspecified.

IMPLEMENTATION NOTES
     The sigwait() function is implemented as a wrapper  around  the  __sys_sig-
     wait() system call, which retries the call on EINTR error.

RETURN VALUES
     If  successful, sigwait() returns 0 and sets the location pointed to by sig
     to the cleared signal number.  Otherwise, an error number is returned.

ERRORS
     The sigwait() system call will fail if:

     [EINVAL]		The set argument specifies one or  more  invalid  signal
			numbers.

SEE ALSO
     sigaction(2),  sigpending(2),  sigqueue(2), sigsuspend(2), sigtimedwait(2),
     sigwaitinfo(2), pause(3), pthread_sigmask(3)

STANDARDS
     The sigwait() function conforms to ISO/IEC 9945-1:1996 ("POSIX.1").

FreeBSD ports 15.quarterly	September 6, 2013		      SIGWAIT(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sigwait&sektion=2&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help