pause — suspend process until signal
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,
does not return.
If the signal is
by the calling process and control is returned from
the signal-catching function (see
the calling process resumes execution from the point of suspension;
with a return value of -1 from
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.
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
may continue waiting. For this reason,
the use of
is recommended instead of
for multi-threaded applications.
For more information regarding signals and threads, refer to
pause(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1