[GCC pthread_create avec en argument une fonction de callback parametré]
Bonsoir à tous,
Je souhaiterai créer un thread qui recoit en paramètre d'entrée une fonction de callBack qui elle aussi possède un paramètre.
Voici mon code :
Code:
1 2 3 4 5 6
|
int startProg(int num, PVOID fcCallBack(PVOID stat)
{
int status = 0;
status = pthread_create( &threadOne, NULL, threadPrincipale, PVOID fcCallBack); |
Mon problème je pense, c'est que je lui passe deja comme argument le pointeur sur la fonction de callback, mais comment lui ajouter son propre argument (PVOID stat) ?
voila la fonction threadPrincipale
Code:
1 2 3 4 5 6 7 8 9
|
PVOID threadPrincipale( PVOID fcCallBack(PVOID number))
{
int * r = number;
printf("le numéro maitre vaut %d\n", *r);
return null;
} |
J'ai un message à ce moment la me disant :
"Erreur "number" non déclaré (première utilisation dans cette fonction)"
et voici mon programme principale avec le callback mentionné:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
PVOID callBackNumber(PVOID num)
{
int * n = num;
// .....
return NULL;
}
int main(void)
{
int status = 0;
status = startProg(0, (PVOID) CallBackNumber);
// .....................;
return 0;
} |
Je sais que ca fait pas mal d'imbrications, mais elles sont nécéssaires dans le cadre de mon projet.
Si quelqu'un pouvais me confirmer que c'est possible, je pourrais me débrouiller de mon coté, sinon comment procéder pour contourner mon problème ?
J'espere avoir été assez claire.
En tout cas Merci d'avance pour votre aide.