bonjour,
j'ai un probléme de processus: j'ai un srcipt PERL qui lance un programme C dans un processus fils, son pere attent un certain délai (ici 3 seconde) si le fils est terminé il envoi une redirection vers une nouvelle page html contenant le résultat du prog C, et si le fils n'est pas terminé il envoie une page demandant de revenir plus tard...
voici le code que j'utilise:
si le prog C se termine avant le delai c ok la page de résulat se charge nikel, par contre le probléme c'est que si le prog c met plus de temps le pere n'envoi pas la balise méta pour changer de page avant que le fils ne soit terminé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 $pid = fork(); if($pid==0) { #prog c } else{ autoflush STDOUT 1; sleep(3); $kid = waitpid($pid,&WNOHANG); if($kid != 0) { # chargement de la page de résultat print $html->end_html; print "<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=..></HEAD>"; } else { # chargement d'une nouvelle page qui indique que le travail n'est pas encore terminé print $html->end_html; print "<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL= ...></HEAD></HTML>"; wait; } print $html->end_html; exit; }![]()
voila ci quelqu'un peut me sortir de cette embuche....
d'avance merci![]()
Partager