【发布时间】:2013-11-05 18:12:52
【问题描述】:
我有这样一个信号处理程序:
void my_signal_handler(int signo )
{
sigset_t sa_mask;
sigsetemptyset(&sa_mask);
sigaddset(&sa_mask, SIGINT);
int res = pthread_sigmask(SIG_BLOCK, &sa_mask, NULL);
int i;
for(i=0;i<NUM_OF_THREADS;i++) {
pthread_kill(my_threads[i], SIGINT);
}
}
我用它来处理 SIGINT。它必须在收到 SIGINT 时关闭其他线程。我试图阻止线程中的 SIGINT 不引起信号风暴。不幸的是,信号不会停止发送。我做错了什么?
【问题讨论】:
-
你想做什么?您希望程序将 SIGINT 定向到一个线程(大概),然后让该线程向所有其他线程发出信号,以便它们被中断并关闭?
标签: c multithreading pthreads signals