sigsuspend(2) sigsuspend(2)
NAME
sigsuspend - install a signal mask and suspend process until
signal
SYNOPSIS
#include <signal.h>
int sigsuspend(const sigset_t *set);
DESCRIPTION
sigsuspend replaces the process's signal mask with the set of
signals pointed to by the argument set and then suspends the
process until delivery of a signal whose action is either to
execute a signal catching function or to terminate the
process.
If the action is to terminate the process, sigsuspend does not
return. If the action is to execute a signal catching
function, sigsuspend returns after the signal catching
function returns. On return, the signal mask is restored to
the set that existed before the call to sigsuspend.
It is not possible to block those signals that cannot be
ignored [see signal(5)]; this restriction is silently imposed
by the system.
Return Values
Because sigsuspend suspends process execution indefinitely,
there is no successful return value. On failure, sigsuspend
returns -1 and sets errno to identify the error.
Errors
In the following conditions, sigsuspend fails and sets errno
to:
EINTR A signal is caught by the calling process and
control is returned from the signal catching
function.
EFAULT The set argument points outside the process's
allocated address space.
REFERENCES
sigaction(2), signal(5) sigpause(3BSD), sigprocmask(2),
sigsetops(3C)
Copyright 1994 Novell, Inc. Page 1
sigsuspend(2) sigsuspend(2)
NOTICES
Considerations for Threads Programming
In multithreaded programs, signal masks are defined per
thread. See signal(5) for further details.
While one thread is blocked, siblings might still be
executing.
Considerations for Lightweight Processes
Internally, there is one signal mask is per LWP. The Threads
Library has a wrapper function for this system call to give
every thread a signal mask.
Copyright 1994 Novell, Inc. Page 2