Thread et variable globale

Signaler
Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011
-
Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011
-
Bonjour,

Je developpe une application en C++.
La classe que je developpe comporte une méthode "recevoir (char *trame). Dans cette méthode, je fais appel à une autre méthode appelée "reception(char *message)".
Cette méthode créé un thread fils (fork()) qui récupère des données envoyées par un client (c une appli client/serveur), et il modifie la variable "message".
Dans le pere, je fais un wait(0) qui attend la fin du fils.
et malgré tout, je ne vois pas, depuis le père, la valeur de la variable message, alors que le fils l'a bien remplie !!
Est ce normal ???

Voici le squelette de mon prog:

int recevoir(char * trame){
int val_retour;
val_retour = reception(trame);
return val_retour;
}

int reception (char *message){
int val_retour = 0;
if (fork()!=0){
//père
wait(0);
cout<<message;
}
else{
//fils
//traitement de la réception
//message est remplit.
}
}

Merci
Valoue

1 réponse

Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011

Apparemment si je veux pouvoir partager l'environnement (ie les variables) il faut que j'utilise les threads posix.
Je tente donc d'utiliser les thread Posix avec pthread_create.

Quelqu'un saurait-il comment utiliser pthread_create dans une classe C++.
G un pb sur la méthode que je veux appeler pour le thread (et donnée dans pthread_create, en paramètre). Il faut apparemment qu'elle soit static ou je ne sais koi.

Pourriez vous m'expliquer ??

Valoue