pthread_sigmask()

Modify or examine a thread's signal-blocked mask

Synopsis:

#include <signal.h>

int pthread_sigmask( int how,
                     const sigset_t* set,
                     sigset_t* oset );

Arguments:

how
How you want to change the signal mask; one of:
  • SIG_BLOCK — make the resulting signal mask the union of the current signal mask and the signal set set.
  • SIG_UNBLOCK — make the resulting signal mask the intersection of the current signal mask and the complement of the signal set set.
  • SIG_SETMASK — make the resulting signal mask the signal set set.

This argument is ignored if set is NULL.

set
NULL, or a pointer to a sigset_t object that specifies the signals that you want to affect in the mask.
oset
NULL, or a pointer to a sigset_t object where the function can store the thread's old signal mask.

You can use various combinations of set and oset to query or change (or both) the signal-blocked mask for a signal.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pthread_sigmask() function is used to examine or change (or both) the calling thread's signal mask. If set is non-NULL, the thread's signal mask is set to set. If oset is non-NULL, the thread's old signal mask is returned in oset.

You can't block the SIGKILL and SIGSTOP signals.

Returns:

EOK
Success.
EINVAL
Invalid how parameter.

Classification:

POSIX 1003.1

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