我也没有看明白为什么pause在这里不应该返回-1. 因为这时当前进程对SIGALARM的处理方式仍然是捕获。 除非出于某种原因,被中断的进程task_struct中SIGALARM的处理方式被修改为Ign,才会产生竞争条件。
6 返回这个进程的主控制流程,alarm(nsecs)返回,调用pause()挂起等待。 7 可是SIGALRM信号已经处理完了,还等待什么呢? I'm confused by this description. If sig_alrm() has been finished, the pause() should return -1. The main() should be resumed and be executed until main() finishes. Who can tell where is the race condition?
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!