pthread_attr_setsigmask_np
PTHREAD_ATTR_SETSIGMASK_NP(Linux Programmer's ManPTHREAD_ATTR_SETSIGMASK_NP(3)
NAME
pthread_attr_setsigmask_np, pthread_attr_getsigmask_np - set/get signal
mask attribute in thread attributes object
SYNOPSIS
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <pthread.h>
int pthread_attr_setsigmask_np(pthread_attr_t *attr,
const sigset_t *sigmask);
int pthread_attr_getsigmask_np(const pthread_attr_t *attr,
sigset_t *sigmask);
Compile and link with -pthread.
DESCRIPTION
The pthread_attr_setsigmask_np() function sets the signal mask attri-
bute of the thread attributes object referred to by attr to the value
specified in *sigmask. If sigmask is specified as NULL, then any ex-
isting signal mask attribute in attr is unset.
The pthread_attr_getsigmask_np() function returns the signal mask at-
tribute of the thread attributes object referred to by attr in the buf-
fer pointed to by sigmask. If the signal mask attribute is currently
unset, then this function returns the special value
PTHREAD_ATTR_NO_SIGMASK_NP as its result.
RETURN VALUE
The pthread_attr_setsigmask_np() function returns 0 on success, or a
nonzero error number on failure.
the pthread_attr_getsigmask_np() function returns either 0 or
PTHREAD_ATTR_NO_SIGMASK_NP. When 0 is returned, the signal mask attri-
bute is returned via sigmask. A return value of PTHREAD_ATTR_NO_SIG-
MASK_NP indicates that the signal mask attribute is not set in attr.
On error, these functions return a positive error number.
ERRORS
ENOMEM (pthread_attr_setsigmask_np()) Could not allocate memory.
VERSIONS
These functions are provided by glibc since version 2.32.
ATTRIBUTES
For an explanation of the terms used in this section, see at-
tributes(7).
+-------------------------------+---------------+---------+
|Interface | Attribute | Value |
+-------------------------------+---------------+---------+
|pthread_attr_setsigmask_np(), | Thread safety | MT-Safe |
|pthread_attr_getsigmask_np() | | |
+-------------------------------+---------------+---------+
CONFORMING TO
These functions are nonstandard GNU extensions; hence the suffix "_np"
(nonportable) in the names.
NOTES
The signal mask attribute determines the signal mask that will be as-
signed to a thread created using the thread attributes object attr. If
this attribute is not set, then a thread created using attr will in-
herit a copy of the creating thread's signal mask.
For more details on signal masks, see sigprocmask(2). For a descrip-
tion of a set of macros that can be used to manipulate and inspect sig-
nals sets, see sigsetops(3).
In the absence of pthread_attr_setsigmask_np() it is possible to create
a thread with a desired signal mask as follows:
o The creating thread uses pthread_sigmask(3) to save its current sig-
nal mask and set its mask to block all signals.
o The new thread is then created using pthread_create(); the new thread
will inherit the creating thread's signal mask.
o The new thread sets its signal mask to the desired value using
pthread_sigmask(3).
o The creating thread restores its signal mask to the original value.
Following the above steps, there is no possibility for the new thread
to receive a signal before it has adjusted its signal mask to the de-
sired value.
SEE ALSO
sigprocmask(2), pthread_attr_init(3), pthread_sigmask(3), pthreads(7),
signals(7)
COLOPHON
This page is part of release 5.10 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the
latest version of this page, can be found at
https://www.kernel.org/doc/man-pages/.
Linux 2020-11-01 PTHREAD_ATTR_SETSIGMASK_NP(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2025
Hurricane Electric.
All Rights Reserved.