Bonjour,
j'aimerais trouver une commande qui me permettrait d'effectuer une pause à mon programme. Pour le moment j'utilise : sleep() mais à un moment cette fonction me fait déconner ce bout de code :

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
 
endwait = clock () + freq * CLOCKS_PER_SEC ;
  		while (clock() < endwait) {
		  	if (thInfo->myHost->stop == 1) {
				pthread_mutex_unlock( &mutexStop );
 
				//cleanup
				free(tmp->oid);
				free(tmp->host);
				free(tmp);
				free(ip);
 
				return 0;	
			}
 
  			pthread_mutex_unlock( &mutexStop );
			sleep(2);
			pthread_mutex_lock( &mutexStop );	
  		}
Bizarement la fonction clock() après un certain temps garde perpétuellement la même valeur, ce qui fait que la condition de ma boucle est toujours VRAI et ce bout de code tourne en boucle.
J'ai cru aperçevoir que "sleep(..)" ne tournait pas bien sur les système linux et je travaille juste là dessus.

Avez -vous une suggestion à me proposer?


P.S : ce bout de code est utilisé par plusieurs threads à la fois