我正在尝试实现一个信号处理程序。每个 pthread 都被创建为可连接的,并且使用 sigprocmask 在所有信号上被阻塞。
当我向线程发送来自另一个线程的信号时,会出现问题,使用
pthread_kill(_threads[threadIndex], SIGHALT);
如果在发送信号时被调用的 pthread 正在等待 pthread_join,则整个过程立即终止。但是,如果线程没有等待加入,它会按预期忽略信号。知道为什么会发生以及如何改变它吗?
谢谢!
我正在尝试实现一个信号处理程序。每个 pthread 都被创建为可连接的,并且使用 sigprocmask 在所有信号上被阻塞。
当我向线程发送来自另一个线程的信号时,会出现问题,使用
pthread_kill(_threads[threadIndex], SIGHALT);
如果在发送信号时被调用的 pthread 正在等待 pthread_join,则整个过程立即终止。但是,如果线程没有等待加入,它会按预期忽略信号。知道为什么会发生以及如何改变它吗?
谢谢!