Man Linux: Main Page and Category List

NAME

       sigsuspend - wait for a signal

SYNOPSIS

       #include <signal.h>

       int sigsuspend(const sigset_t *sigmask);

DESCRIPTION

       The  sigsuspend() function shall replace the current signal mask of the
       calling thread with the set of signals pointed to by sigmask  and  then
       suspend the thread until delivery of a signal whose action is either to
       execute a signal-catching function or to terminate  the  process.  This
       shall  not  cause  any  other signals that may have been pending on the
       process to become pending on the thread.

       If the action is to terminate the process then sigsuspend() shall never
       return.  If  the  action is to execute a signal-catching function, then
       sigsuspend() shall return after the signal-catching  function  returns,
       with  the  signal  mask  restored  to the set that existed prior to the
       sigsuspend() call.

       It is not possible to block signals that cannot  be  ignored.  This  is
       enforced by the system without causing an error to be indicated.

RETURN VALUE

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

ERRORS

       The sigsuspend() function shall fail if:

       EINTR  A  signal  is  caught  by  the  calling  process  and control is
              returned from the signal-catching function.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       Normally, at the beginning of a critical code section, a specified  set
       of  signals  is  blocked  using  the  sigprocmask() function.  When the
       thread has completed the critical section and needs  to  wait  for  the
       previously  blocked  signal(s),  it pauses by calling sigsuspend() with
       the mask that was returned by the sigprocmask() call.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       Signal Concepts , pause() , sigaction() , sigaddset() ,  sigdelset()  ,
       sigemptyset()   ,   sigfillset()  ,  the  Base  Definitions  volume  of
       IEEE Std 1003.1-2001, <signal.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .