Probleme thread linux ...

Résolu
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 - 21 juin 2005 à 12:28
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010 - 22 juin 2005 à 19:25
Voila mon probleme, quand je ve compiler il me sort une erreur :

passing `void (*)(void *)' as argument 3 of `pthread_create(pthread_t *, const pthread_attr_t *, void * (*)(void *), void *)'

Je ne comprend pas du tout ...

Pour creer mes thread j'utilise ca :

#define DeclareThread(x,y,z) pthread_t x; void z(void *arg)

#define CreerThread(x,y,z) pthread_create(&x, NULL, z, NULL)

#define AttendreThread(x) void *retour; (void)pthread_join(x, &retour)

#define FonctionThread(x) void *x(void *arg)

(car je me suis fais une suite de #define pour que mon prog soit
compatible windows ET linux sans modification de code, donc il peut y
avoir des arguments en trop car ils sont necessaires pour windows)

Donc voila si quelqu'un avait une idee ca serait tres gentil ^^

3 réponses

bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
22 juin 2005 à 19:25
#define DeclareThread(x,y,z) pthread_t x; void z(void *arg)

Et de là ?

mayonaise tournera, bientôt, très bientôt...
3
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
21 juin 2005 à 13:26
en fait pour les pthreads, la fonction d'entrée est de la forme void *func(void*) et non pas void func(void*).


mayonaise tournera, bientôt, très bientôt...
0
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
21 juin 2005 à 14:08
bah oui c'est ce que j'ai :

#define FonctionThread(x) void *x(void *arg)

ca donne avec FonctionThread(truc) -> void *truc(void *arg)

donc le problem ne doit pas venir d'ici ...
0
Rejoignez-nous