在他的关于网页的自管绝招,丹·伯恩斯坦解释了竞争条件select()
和信号,提供一个解决办法,并得出结论认为,
当然,正确的事情是
fork()
返回文件描述符,而不是进程ID。
他的意思是-能够select()
在子进程上处理其状态更改,而不必使用信号处理程序来通知那些状态更改,这是否有意义?
signalfd
s当时是这样吗?
wait()
,有些事情是您做不到的,所以有人发明了SIGCHLD,但这是一项糟糕的工作。根据我的经验,现在它们的存在,洒不错,无阻塞wait3()
, wait4()
和/或waitpid()
在关键的地方调用(也许你的主事件循环)是一个大大优于替代。