Bonjour,

J'ai un petit souci en C sur linux avec la librairie pthread.

J'essaie de passer aux thread que je créé leur id (int), pour ce faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
main :
-----------
int n;
n = ...
pthread_create(&(clients[n].thread), NULL, handle_client, &n);
 
void* handle_client(void * n)
{
	int position_n = *((int *) n);
	....
}
Cela fonctionne 9x sur 10, mais j'ai l'impression que je reçois parfois la mauvaise valeur lors d'une série de créations (n varie à chaque fois).

Malheureusement je ne sais pas trop comment tester vu qu'un printf peut avoir lieu avant un autre.

J'ai cependant lu à quelque part qu'il fallait mettre de sleep après la création d'un thread ?!?! Est-ce correct ? est ce que mon problème peut venir de là ? ou de la façon par laquelle je passe mon paramètre ?

Merci d'avance pour votre aide !!!