#### 24.10.2 BSD Functions for Blocking Signals

— Macro: int sigmask (int signum)

> Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

> This macro returns a signal mask that has the bit for signal signum set. You can bitwise-OR the results of several calls to `sigmask` together to specify more than one signal. For example,

>               (sigmask (SIGTSTP) | sigmask (SIGSTOP)
>                | sigmask (SIGTTIN) | sigmask (SIGTTOU))

> specifies a mask that includes all the job-control stop signals.

— Function: int sigblock (int mask)

> Preliminary: | MT-Safe | AS-Unsafe lock/hurd | AC-Unsafe lock/hurd | See POSIX Safety Concepts.

> This function is equivalent to `sigprocmask` (see Process Signal Mask) with a how argument of `SIG_BLOCK`: it adds the signals specified by mask to the calling process's set of blocked signals. The return value is the previous set of blocked signals.

— Function: int sigsetmask (int mask)

> Preliminary: | MT-Safe | AS-Unsafe lock/hurd | AC-Unsafe lock/hurd | See POSIX Safety Concepts.

> This function equivalent to `sigprocmask` (see Process Signal Mask) with a how argument of `SIG_SETMASK`: it sets the calling process's signal mask to mask. The return value is the previous set of blocked signals.

— Function: int sigpause (int mask)

> Preliminary: | MT-Unsafe race:sigprocmask/!bsd!linux | AS-Unsafe lock/hurd | AC-Unsafe lock/hurd | See POSIX Safety Concepts.

> This function is the equivalent of `sigsuspend` (see Waiting for a Signal): it sets the calling process's signal mask to mask, and waits for a signal to arrive. On return the previous set of blocked signals is restored.