Probleme thread linux ... [Résolu]

Signaler
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
-
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
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

Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

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

Et de là ?

mayonaise tournera, bientôt, très bientôt...
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

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...
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
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 ...