Il faut attendre le fils bien sûr, mais avant cela il faut fermer le
descripteur de fichier sur lequel lit le fils, sinon celui-ci attendrait
indéfiniment que son père émette d’autres données, conduisant à un
interblocage (la fermeture d’un canal se charge de vider le tampon juste
avant sa fermeture, donc on ne perd rien).
Concrètement, on remplace la ligne 52 par:
let output = out_channel_of_descr fd_out in
generate len output;
close_out output;
ignore(waitpid [] k);;
De même, on va entourer le bloc 37–41 (désigné par ...) par
les lignes suivantes: