HP 3000 Manuals

sigsuspend [ MPE/iX Developer's Kit Reference Manual Volume I ] MPE/iX 5.0 Documentation


MPE/iX Developer's Kit Reference Manual Volume I

sigsuspend 

Replaces the calling process's signal mask and suspends the calling
process to wait for a signal.

Syntax 

     #include <signal.h>
     int sigsuspend (sigset_t *sigmask);

Parameters 

sigmask    If not NULL, a pointer to a structure of type sigset_t that
           contains a new signal mask to be installed before suspending
           the calling process.  If NULL, the process's current signal
           mask is used.

Return Values 

No return  Because sigsuspend() suspends process execution indefinitely,
           there is no return value indicating success.

-1         An error occurred, and errno is set to indicate the error
           condition.

Description 

The sigsuspend() function replaces the calling process's signal mask with
the set of signals pointed to by sigmask.  It then suspends the process
until the delivery of a signal whose action is either to execute a
signal-handling function (signal handler) or to terminate the process.

If the action is to execute a signal handler, upon completion of the
signal handler, sigsuspend() returns and restores the process's previous
signal mask.  If the signal action is to terminate the process,
sigsuspend() does not return.

It is not possible to block the signals SIGKILL and SIGSTOP. If specified
in the structure pointed to by sigmask, they are removed by the system
without error.

Implementation Considerations 

Refer to the EFAULT error description below.

If the sigmask parameter of the sigsuspend() function is set to NULL, the
process is suspended with the current signal mask.  This implementation
is considered an extension to the POSIX.1 standard.  A strictly
conforming POSIX application should pass in the sigmask parameter of the
sigsuspend() function the current signal mask returned by a successful
call to sigprocmask() where set is set to NULL.

Errors 

If an error occurs, errno is set to one of the following values:

EFAULT            CAUSE           The system detected a bad address in attempting to
                                  use the sigmask parameter.
                  ACTION          Make sure that the pointer is correctly initialized.

EINTR             CAUSE           A signal was caught by the process, and control was
                                  returned from a signal-handling function.
                  ACTION          No action required.

See Also 

pause(), sigaction(), sigpending(), sigprocmask(), <signal.h>, POSIX.1
(Section 3.3.7)



MPE/iX 5.0 Documentation