在OS X上排队信号

时间:2014-12-24 11:46:39

标签: macos unix signals

据我所知,OS X不支持实时信号。

我想知道信号是否可能在OS X中排队。

例如,如果我快速提供给应用程序发送SIGUSR2 10次,我保证会对信号处理程序进行10次调用,或者是否可能会丢弃其中一些?

1 个答案:

答案 0 :(得分:2)

信号可以被丢弃。进程的待处理信号记录在位掩码中。如果相同的信号在进程可以处理之前多次到达(包括因为该信号被阻止,包括因为进程当前正在处理该信号),那么它将仅在掩码中设置已经设置的位。没有队列。没有统计数据。

kernel source中搜索_siglist({1}}和uu_siglist的子字符串,一个用于进程的另一个用于进程的字符串。