HP-UX Reference (11i v2 07/12) - 2 System Calls (vol 5)

p
pause(2) pause(2)
NAME
pause() - suspend process until signal
SYNOPSIS
#include <unistd.h>
int pause(void);
DESCRIPTION
pause() suspends the calling process until it receives a signal. The signal must be one that is not
currently set to be ignored or blocked (masked) by the calling process.
If the signal causes termination of the calling process,
pause() does not return.
If the signal is caught by the calling process and control is returned from the signal-catching function (see
signal(5)), the calling process resumes execution from the point of suspension; with a return value of -1
from
pause() and errno set to [EINTR].
WARNING
Check all references to signal(5) for appropriateness on systems that support sigvector (2).
sigvec-
tor()
can affect the behavior described on this page.
APPLICATION USAGE
Threads Considerations
Signal dispositions (such as catch/default/ignore) are shared by all threads in the process and blocked signal
masks are maintained by each thread. Therefore, the signals being waited for should not be ignored by the
process or blocked by the calling thread.
pause() will suspend 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 pause() may continue waiting. For this reason, the use of
sigwait() is
recommended instead of
pause() for multi-threaded applications.
For more information regarding signals and threads, refer to signal(5).
SEE ALSO
alarm(2), kill(2), sigvector(2), sigwait(2), wait(2), signal(5).
STANDARDS CONFORMANCE
pause(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1
248 Hewlett-Packard Company 1 HP-UX 11i Version 2: December 2007 Update