我怀疑当SIGALRM信号被阻塞时会发生什么,它是否会进入待处理状态并在被解除阻塞后被传送或者是否会丢失?
答案 0 :(得分:0)
SIGALRM保持待定状态,并在解锁后立即发送。
阻塞信号(SIG_BLOCK)保持挂起状态,直到它为止:
struct sigaction
' s sa_handler
。sigwait
,sigwaitinfo
或sigtimedwait
,表示已从待处理信号集中删除,无需采取进一步措施传统的UNIX信号通常不会排队,因此一次只有一个给定类型的信号可能处于待处理状态,随后生成的相同类型的信号将丢失。
(另外,实现选择信号传递和接受的顺序,例如,在更高编号的信号之前始终传递或接受较低编号的信号。这意味着如果其他信号可能不会首先传送新的未阻止的SIGALRM信号已准备好交付。但实际上,它会立即发送。)