Grave pb pthread_create

Signaler
Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Bonjour,

j'essaie d'utiliser dans mon projet la fonction pthread_create mais g des pb a la compil et je ne sais pas pourkoi.
Je developpe une classe C++ (donc pas de main dans cette classe).
Voici un extrait de mon code:

int recoitTrame(char * trame){
st.text = (char *)malloc(1024);
//creation d'un processus fils
pthread_t threadfils_id;
if (pthread_create(&threadfils_id,NULL,reception,(void *)&st) ==-1){
cout<<"pb lors de la création du thread\n";
}
int *resultat;
pthread_join(threadfils_id,(void **)&resultat);
cout<<"en sortie = "<<st.text<<"\n";
strcpy(trame,st.text);
return 0;
}

void *reception (void *st){
return NULL;
}

L'erreur qui m'est dit à la compil (g++ sous Linux) est:
"no matches converting function 'reception' to type void*(*)(void*)"

Cette erreur est dite sur la ligne qui fait l'appel pthread_create.
Je ne comprends pas où est mon erreur, g essayé de faire excatement comme dans des codes que g trouvé.
Auriez vous une idée ?????
Merci

Valoue

4 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
y a t'il un prototype de la fct reception avant son utilisation dans create_thread ?
s'il n'y en a pas, le compilo prendra par défaut une fct qui retourne un int (et pas void* comme voulu).
Messages postés
72
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2011

Merci de ta réponse.
Ben en fait g essayé de mettre la fonction "reception" avant la fonction qui contient l'apple de pthread_create, mais g toujours le même erreur.
J'ai l'impression d'avoir un pb dans l'appel, parce que l'erreur est:
"no matches converting function 'reception' to type void*(*)(void*)"
"candidates are: void* NomClasse::reception(void*)"

J'ai l'impression d'avoir un pb d'appel de la fonction "reception" dans pthread_create, une histoire de pointeur, ou un machin comme ça.
ça ne dit rien a personne ??
Valoue
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
si la fct 'reception' fait parti d'une classe, elle doit être déclaré 'static' sinon cela ne marchera pas. si tu as besoin d'avoir accès aux membre de la classe, tu peux passer un pointeur 'this' comme param de la fct.
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
si la fct 'reception' fait parti d'une classe, elle doit être déclaré 'static' sinon cela ne marchera pas. si tu as besoin d'avoir accès aux membre de la classe, tu peux passer un pointeur 'this' comme param de la fct.