Bonjour tout le monde, j'ai pas trouve de sujet relatif a la fonction wait, donc voila.
Le contexte est le suivant : j'ai fait un script perl qui, en mode master, lance plusieurs (entre 100 et 1000) instances de lui-meme (en mode slave) en passant par fork(), en recuperant le pid de chaque enfant. Il se met alors en attente via $pid = wait() qui va recuperer le pid du fils qui vient de terminer, puis lancer un post-process. La question est la suivante : si un enfant termine en meme temps qu'un autre ou pendant la phase de post-processing, est-ce qu'il sera quand meme detecte par wait() ? Est-ce que les pid des enfants morts sont stockes qqpart en attendant l'appel a wait() ou est-ce que je risque a un moment de voir apparaitre une condition de course qui me fera louper un des enfants ?
--------------- MEMBRE DU GROUPUSCULE DES AVATARS EN COLERE
si c'est la même chose qu'en C, alors tes enfants ne vont pas terminer, mais vont devenir des zombies jusqu'a qu'ils soient traités par wait().
pas de risque donc.