【发布时间】:2015-09-01 18:23:54
【问题描述】:
我有一个 C 应用程序使用 poll 来等待一些数据。
目前我正在将我的应用程序的其余部分实现到这个应用程序中,并且我使用基于时间的中断 (SIGRTMIN)。如果我的其他计时器之一回调,则如预期的那样 poll() 返回。
如何阻止民意调查这样做?我正在阅读很多关于 ppoll() 的内容,但不知道如何使用它...我可以使用它来阻止此函数在触发计时器事件时返回吗?
(投票延迟几毫秒我没有任何问题)
【问题讨论】:
-
使用
sigprocmask()(或pthread_sigmask(),用于多线程程序)查找当前信号掩码,sigaddset()是您要在[p]poll()期间阻塞的信号,然后在调用poll()之前将信号掩码传递给ppoll()或sigprocmask()/pthread_sigmask(),并接受将存在竞争条件。