如何确定unix信号队列(Linux)中未决信号的数量

如何确定unix信号队列(Linux)中未决信号的数量,第1张

概述如何确定unix信号队列(Linux)中未决信号的数量

我需要在linux的线程的信号队列中find待处理的信号的数量。 是否有任何由linux提供的API?

这个API需要从线程调用,而不是我们正在查询的线程。

sigpending为调用线程提供API。 是否有任何API,它将线程ID作为arg,并提供有关队列中未决信号的一些信息。

任何帮助表示赞赏。

信号如何与序列点相互作用?

从信号处理程序打印堆栈跟踪

Python在os.system(“sleep …”)时如何阻塞信号?

如何在multithreading环境中处理SIGPIPE?

从信号处理程序唤醒线程

终止另一个用户的脚本

如何在windows上捕获Python中的SIGINT?

windows等价于pthread_sigmask()

如果按下“终止”button,在linux上的Eclipse CDT中会发生什么?

是mq_sendprimefaces?

sigpending()返回一个线程等待交付的信号集合。 您可以迭代sigset_t并使用sigismember()来测试成员资格。

传统上,UNIX不排队信号的多个实例(在这个意义上,它们仍然是“不可靠的”)。 有时你可以用实时信号得到这个效果。

在linux上,从signalfd读取()将允许一次读取多个信号实例,如果它们排队。

我不知道这样一个API,但这里是一个解决方法:写一个小型库包装的信号代码。 发送信号时,增加一个原子计数器。 处理信号时,请再次递减计数器。 然后,你可以使用这个原子计数器来回答你的好奇心。

[编辑]如果这还不够,那么你有源代码:只要检查代码和数据结构,并使用你需要查看的内核结构。 但是这可能涉及编写一个模块(因为内核的数据结构不能被进程读取),而且你的代码将依赖于编译它的内核。 所以我建议不要这种方法。

总结

以上是内存溢出为你收集整理的如何确定unix信号队列(Linux)中未决信号的数量全部内容,希望文章能够帮你解决如何确定unix信号队列(Linux)中未决信号的数量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1292868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存