我对SIGALRM信号被阻塞,它进入待处理状态并在解除阻塞后传递还是丢失感到怀疑吗?
SIGALRM处于待处理状态,它将在不受阻碍的情况下立即交付。
被阻塞的信号(SIG_BLOCK)保持挂起状态,直到:
struct sigaction
的sa_handler
。sigwait
,sigwaitinfo
或者sigtimedwait
,这意味着它是从一组未决信号而无需进一步的动作除去传统的UNIX信号通常不排队,因此一次只能处理一个给定类型的信号,并且随后生成的相同类型的信号将丢失。
(顺便说一句,实现会选择信号传递和接受的顺序,例如,始终先传递或接受数目较小的信号,然后再传递数目较大的信号。这意味着如果其他信号准备就绪,则新近畅通的SIGALRM可能不会首先传递(实际上,它会立即交付。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句