Originální popis anglicky:
sigsuspend - wait for a signal
Návod, kniha: POSIX Programmer's Manual
#include <signal.h>
int sigsuspend(const sigset_t *
sigmask);
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.
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.
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.
None.
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.
None.
None.
Signal Concepts ,
pause() ,
sigaction() ,
sigaddset() ,
sigdelset() ,
sigemptyset() ,
sigfillset() , the Base Definitions volume of
IEEE Std 1003.1-2001,
<signal.h>
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
.