多线程编程指南

访问调用线程的信号掩码

使用 thr_sigsetmask(3C) 可以更改或检查调用线程的信号掩码。

thr_sigsetmask 语法

#include <thread.h>

#include <signal.h>

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

thr_sigsetmask() 可用来更改或检查调用线程的信号掩码。每个线程都有自已的信号掩码。新线程会继承调用线程的信号掩码和优先级,但不会继承暂挂的信号。新线程的暂挂信号将为空。

如果参数 set 的值不为 NULL,则 set 会指向一组信号,这组信号可用来修改当前阻塞的信号组。如果 set 的值为 NULL,则 how 的值没有意义,并且不会修改线程的信号掩码。使用此行为可了解有关当前阻塞的信号的情况。

how 的值可指定更改信号组的方法。how 可以为以下值之一。

thr_sigsetmask 返回值

如果成功完成,thr_sigsetmask() 将返回 0。如果检测到以下任一情况,thr_sigsetmask() 将失败并返回对应的值。


EINVAL

描述:

set 不为 NULL,并且 how 的值未定义。