有没有办法向所有打开fd的线程发送信号?

时间:2016-07-04 14:56:19

标签: c networking

我想关闭一个套接字,但在通知accept/connect上的所有线程阻塞之前,因此我发送一个用户特定的信号,但不知道信号接收线程的tid。我不能使用系统调用kill(pid, signal)

2 个答案:

答案 0 :(得分:2)

为什么不在没有通知的情况下关闭套接字?接受或从该套接字读取时阻塞的每个线程将返回相应的错误,您可以解析该错误以采取必要的操作

答案 1 :(得分:0)

是的。您可以通过系统调用向所有正在运行的线程发送信号:kill()。 像这样使用它: 杀死(0,signal_id) 这里'0'表示所有过程的广播信号。对广播信号进行注册的进程'执行其信号处理程序以进行进一步操作。