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: • The creating thread uses pthread_sigmask(3) to save its current sig- nal mask and set its mask to block all signals. • The new thread is then created using pthread_create(); the new thread will inherit the creating thread's signal mask. • The new thread sets its signal mask to the desired value using pthread_sigmask(3). • 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)
Generated by dwww version 1.14 on Thu Jan 23 02:20:49 CET 2025.