Bonjour � tous,

Ma question est tr�s simple, j'ai un processus dans une fonction C++, qui peut durer trop longtemps dans certains cas (ce que je vous donne est juste une version simplifi�e).
Je souhaite donc arr�ter ce processus lorsqu'il dure plus de X secondes, mais pour cela je dois �valuer le temps moyen de ce processus.

J'utilise pour cela la fonction suivante, o� le processus en question est un simple "HELLO".

Malheureusement le compteur me donne syst�matiquement (lasttime =) z�ro � la fin, m�me si le processus est plus long.

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
29
 
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
 
void test(){
 
int pid = 0;
double lasttime=0;
 int status = 0;
 
 pid = fork();
 
if( pid == 0 ){
 system("echo HELLO");
 }
 else {
   int counter = 0;
   while (1)
     {
       counter++;
       if( counter > lasttime ) lasttime = counter;
 
       if (waitpid(pid, &status, 0) == pid) break;
     }
 }
 
 return;
}
Je dois faire un truc faux quelque part, est ce que vous voyez mon erreur ?

En vous remerciant d'avance,

Xavier