Em sua página da web sobre o truque do autoduto , Dan Bernstein explica uma condição de corrida com select()
e sinaliza, oferece uma solução alternativa e conclui que
Obviamente, a coisa certa seria
fork()
retornar um descritor de arquivo, não um ID do processo.
O que ele quer dizer com isso - é algo sobre ser capaz de, select()
nos processos filhos, manipular suas alterações de estado, em vez de precisar usar um manipulador de sinal para ser notificado dessas alterações de estado?
signalfd
isso era algo naquela época?
wait()
, havia coisas que você não podia fazer, então alguém inventou o SIGCHLD, mas foi um trabalho ruim. Na minha experiência, e agora que eles existem, polvilhando bom, não bloqueante wait3()
, wait4()
, e / ou waitpid()
chamadas em lugares-chave (talvez o seu principal ciclo de eventos) é uma alternativa muito superior.