[Previous] [Contents] [Next]

sigpause()

Wait for a signal

Synopsis:

#include <signal.h>

int sigpause( int sig );

Library:

libc

Description:

The sigpause() function assigns mask to the set of masked signals and then waits for a signal to arrive; on return, the set of masked signals is restored. The mask argument is usually 0 to indicate that no signals are now to be blocked. This function always terminates by being interrupted, returning -1 and setting errno to EINTR.

In normal usage, a signal is blocked using sigblock(). To begin a critical section, variables modified on the occurrence of the signal are examined to determine that there is no work to be done, and the process pauses awaiting work by using sigpause() with the mask returned by sigblock().

It isn't possible to block SIGKILL, SIGSTOP, or SIGCONT; this restriction is silently imposed by the system.

Returns:

-1; errno is set to EINTR.

Classification:

Unix

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes

Caveats:

Use of these interfaces should be restricted to only applications written on BSD platforms. Use of these interfaces with any of the system libraries or in multithreaded applications is unsupported.

See also:

kill(), sigaction(), sigblock(), sigmask(), signal(), sigsetmask(), sigsuspend(), sigunblock()


[Previous] [Contents] [Next]