Sur sa page Web sur l' astuce du self-pipe , Dan Bernstein explique une condition de course avec select()
et signale, propose une solution de contournement et conclut que
Bien sûr, la bonne chose serait d'avoir
fork()
renvoyé un descripteur de fichier, pas un ID de processus.
Que veut-il dire par cela - s'agit-il de pouvoir select()
sur des processus enfants gérer leurs changements d'état au lieu d'avoir à utiliser un gestionnaire de signaux pour être notifié de ces changements d'état?
signalfd
que ce soit une chose à l'époque?
wait()
, il y avait des choses que vous ne pouviez pas faire, alors quelqu'un a inventé SIGCHLD, mais c'était un mauvais travail. Dans mon expérience, et maintenant qu'ils existent, aspergeant agréable, non bloquante wait3()
, wait4()
et / ou des waitpid()
appels à des endroits clés (peut - être votre boucle d'événement) est une alternative nettement supérieure.