Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

sigsuspend(2) [opensolaris man page]

sigsuspend(2)							   System Calls 						     sigsuspend(2)

NAME
sigsuspend - install a signal mask and suspend caller until signal SYNOPSIS
#include <signal.h> int sigsuspend(const sigset_t *set); DESCRIPTION
The sigsuspend() function replaces the caller's signal mask with the set of signals pointed to by the set argument and suspends the caller until delivery of a signal whose action is either to execute a signal catching function or to terminate the process. If the set argument points to an invalid address, the behavior is undefined and errno may be set to EFAULT. If the action is to terminate the process, sigsuspend() does not return. If the action is to execute a signal catching function, sigsus- pend() 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 signals that cannot be ignored (see signal.h(3HEAD)). This restriction is silently imposed by the system. RETURN VALUES
Since sigsuspend() suspends the caller's execution indefinitely, there is no successful completion return value. On failure, it returns -1 and sets errno to indicate the error. ERRORS
The sigsuspend() function will fail if: EINTR A signal was caught by the caller and control was returned from the signal catching function. The sigsuspend() function may fail if: EFAULT The set argument points to an illegal address. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |Async-Signal-Safe | +-----------------------------+-----------------------------+ SEE ALSO
sigaction(2), sigprocmask(2), sigwait(2), signal(3C), signal.h(3HEAD), sigsetops(3C), attributes(5) NOTES
If the caller specifies more than one unblocked signal in the mask to sigsuspend(), more than one signal might be processed before the call to sigsuspend() returns. While the caller is executing the signal handler that interrupted its call to sigsuspend(), its signal mask is the one passed to sigsus- pend(), modified as usual by the signal mask specification in the signal's sigaction(2) parameters. The caller's signal mask is not restored to its previous value until the caller returns from all the signal handlers that interrupted sigsuspend(). SunOS 5.11 24 Jun 2001 sigsuspend(2)

Check Out this Related Man Page

sigsuspend(2)							System Calls Manual						     sigsuspend(2)

NAME
sigsuspend - wait for a signal SYNOPSIS
DESCRIPTION
The function replaces the current signal mask of the calling thread with the set of signals pointed to by and then suspends the thread until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process. This will 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 will never return. If the action is to execute a signal-catching function, then will return after the signal-catching function returns, with the signal mask restored to the set that existed prior to the 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 suspends thread execution indefinitely, there is no successful completion return value. If a return occurs, -1 is returned and is set to indicate the error. ERRORS
The function will fail if: A signal is caught by the calling process and control is returned from the signal-catching function. sigmask points to an invalid address. The reliable detection of this error is implementation-dependent. APPLICATION USAGE
Threads Considerations Since blocked signal masks are maintained at the thread level, modifies only the calling thread's blocked signal mask. suspends only the calling thread until it receives a signal. If other threads in the process do not block the signal, the signal may be delivered to another thread in the process and the thread in may continue waiting. For this reason, the use of sigwait(2) is recommended instead of for multi-threaded applications. For more information regarding signals and threads, refer to signal(5). LWP (Lightweight Processes) Considerations modifies only the calling LWP's signal mask and suspends only the calling LWP until receipt of a signal. AUTHOR
was derived from the IEEE POSIX 1003.1-1988 Standard. SEE ALSO
pause(2), sigaction(2), sigpending(2), sigprocmask(2), sigsetops(3C), sigwait(2), signal(5). CHANGE HISTORY
First released in Issue 3. Entry included for alignment with the POSIX.1-1988 standard. STANDARDS CONFORMANCE
sigsuspend(2)
Man Page