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

FreeBSD Manual Pages


home | help
sigwaitinfo(3RT)	  Realtime Library Functions	      sigwaitinfo(3RT)

       sigwaitinfo, sigtimedwait - wait	for queued signals

       cc [ flag... ] file... -lrt [ library...	]
       #include	<signal.h>

       int  sigwaitinfo(const  sigset_t	 *restrict  set,  siginfo_t  *restrict

       int sigtimedwait(const  sigset_t	 *restrict  set,  siginfo_t  *restrict
       info, const struct timespec *restrict timeout);

       The   sigwaitinfo()  function  selects  the pending signal from the set
       specified by set. Should	any of 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  be-
       tween multiple pending non-realtime signals, is unspecified. If no sig-
       nal in set is pending at	the time of the	call, the  calling  thread  is
       suspended  until	 one or	more signals in	set become pending or until it
       is interrupted by an unblocked, caught signal.

       The  sigwaitinfo() function behaves the same as the sigwait(2) function
       if  the	info  argument	is NULL. If the	info argument is non-NULL, the
       sigwaitinfo() function behaves the same as sigwait(2), except that  the
       selected	 signal	number is stored in the	si_signo member, and the cause
       of the signal is	stored in the si_code member. If any value  is	queued
       to the selected signal, the first such queued value is dequeued and, if
       the info	argument is non-NULL, the value	is stored in the si_value mem-
       ber  of	info. The system resource used to queue	the signal will	be re-
       leased and made available to queue  other  signals.   If	 no  value  is
       queued,	the content of the si_value member is undefined. If no further
       signals are queued for the selected signal, the pending indication  for
       that  signal  will  be  reset.  If  the	value of the si_code member is
       SI_NOINFO, only the si_signo member of siginfo_t	is meaningful, and the
       value of	all other members is unspecified.

       The   sigtimedwait()  function behaves the same as sigwaitinfo()	except
       that if none of the signals specified by	 set  are  pending,  sigtimed-
       wait()  waits for the time interval specified in	the timespec structure
       referenced by timeout. If the timespec structure	pointed	to by  timeout
       is zero-valued and if none of the signals specified by set are pending,
       then sigtimedwait() returns immediately with an error.  If  timeout  is
       the NULL	pointer, the behavior is unspecified.

       If,  while  sigwaitinfo() or sigtimedwait() is waiting, a signal	occurs
       which is	eligible for delivery (that is,	not  blocked  by  the  process
       signal mask), that signal is handled asynchronously and the wait	is in-

       Upon successful completion (that	is, one	of the	signals	 specified  by
       set  is	pending	or is generated) sigwaitinfo() and sigtimedwait() will
       return the selected signal number. Otherwise, the function  returns  -1
       and sets	errno to indicate the error.

       The sigwaitinfo() and sigtimedwait() functions will fail	if:

       EINTR	       The  wait  was interrupted by an	unblocked, caught sig-

       ENOSYS	       The sigwaitinfo() and sigtimedwait() functions are  not

       The sigtimedwait() function will	also fail if:

       EAGAIN	       No  signal  specified  by  set was generated within the
		       specified timeout period.

       The sigtimedwait() function may also fail if:

       EINVAL	       The timeout argument specified  a  tv_nsec  value  less
		       than zero or greater than or equal to 1000 million. The
		       system only checks for this error if no signal is pend-
		       ing in set and it is necessary to wait.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |
       |MT-Level		     |Async-Safe		   |

       time(2),	     sigqueue(3RT),	siginfo.h(3HEAD),     signal.h(3HEAD),
       time.h(3HEAD), attributes(5), standards(5)

SunOS 5.10			  1 Nov	2003		      sigwaitinfo(3RT)


Want to link to this manual page? Use this URL:

home | help