*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> sigsuspend (2)              
Title
Content
Arch
Section
 

sigsuspend(2)

Contents


NAME    [Toc]    [Back]

       sigsuspend  - Atomically change the set of blocked signals
       and wait for a signal

SYNOPSIS    [Toc]    [Back]

       #include <signal.h>

       int sigsuspend(
               const sigset_t *signal_mask );

STANDARDS    [Toc]    [Back]

       Interfaces documented on this reference  page  conform  to
       industry standards as follows:

       sigsuspend(): XSH4.0, XSH4.2, XSH5.0

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       Points to a set of signals.

DESCRIPTION    [Toc]    [Back]

       The sigsuspend() function replaces the signal mask of  the
       process  (or thread) with the set of signals pointed to by
       the signal_mask parameter, and then suspends execution  of
       the  caller  until  delivery  of  a signal whose action is
       either to execute a signal-catching function or to  terminate
 the process. The sigsuspend() function does not allow
       the SIGKILL or SIGSTOP signals to be blocked. If a program
       attempts  to  block one of these signals, the sigsuspend()
       function gives no indication of  the  error;  the  illegal
       request is simply ignored.

       If  delivery  of a signal causes the process to terminate,
       the sigsuspend() function does not return. If delivery  of
       a signal causes a signal-catching function to execute, the
       sigsuspend() function returns  after  the  signal-catching
       function returns, with the signal mask restored to the set
       that existed prior to the call to the  sigsuspend()  function.


       The  sigsuspend()  function sets the signal mask and waits
       for an unblocked signal  as  one  atomic  operation.  This
       means  that signals cannot occur between the operations of
       setting the mask and waiting for a signal.  If  a  program
       uses  the  sigprocmask(SIG_SETMASK)  and  sigpause() calls
       separately, a signal that occurs between these calls might
       not  be  noticed  by  sigpause(). (The sigpause() function
       provides a compatibility  interface  to  the  sigsuspend()
       function.)

       In normal usage, a signal is blocked by using the sigprocmask(SIG_BLOCK,...)
  or pthread_sigmask(...)  call at  the
       beginning  of  a critical section. The process then determines
 whether there is work for it to do. If no work is to
       be done, the process waits for work by calling the sigsuspend()
 function with the mask previously returned  by  the
       sigprocmask() function.



RETURN VALUES    [Toc]    [Back]

       Since the sigsuspend() function suspends process execution
       indefinitely, there is  no  successful  completion  return
       value. If a return occurs, -1 is returned and errno is set
       to indicate the error.

ERRORS    [Toc]    [Back]

       The sigsuspend() function sets errno to the  value  specified
  for  the following conditions: A signal is caught by
       the calling process and control is returned from the  signal-catching
 function.

SEE ALSO    [Toc]    [Back]

      
      
       Functions:   sigaction(2),   sigblock(2),  sigprocmask(2),
       sigvec(2), pause(3), sigpause(3)

       Standards: standards(5)



                                                    sigsuspend(2)
[ Back ]
 Similar pages
Name OS Title
sigsuspend OpenBSD atomically release blocked signals and wait for interrupt
sigpause FreeBSD atomically release blocked signals and wait for interrupt
sigpause NetBSD atomically release blocked signals and wait for interrupt
sigsuspend NetBSD atomically release blocked signals and wait for interrupt
sigpause OpenBSD atomically release blocked signals and wait for interrupt
sigsuspend FreeBSD atomically release blocked signals and wait for interrupt
sigpause Linux atomically release blocked signals and wait for interrupt
sigsuspend IRIX atomically release blocked signals and wait for interrupt (POSIX)
sigpause IRIX atomically release blocked signals and wait for interrupt (4.3BSD)
sigprocmask HP-UX examine and change blocked signals
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service