Re: thread

Top Page

Reply to this message
Author: Patrick Dupre
Date:  
To: Hugues Evrard
CC: guilde
Subject: Re: thread
Merci pour les commentaires

En fait il refuse la compilation si la function est une function membre
d'un classe.
Il est conseille de la declarer static
mais alors elle ne peut plus modifier les variables de classe privee
(si j'ai bien compris),
Il y a peut-etre une solution en utilisant mutable!


===========================================================================
 Patrick DUPRÉ                                 | | email: pdupre@???
 Laboratoire de Physico-Chimie de l'Atmosphère | |
 Université du Littoral-Côte d'Opale           | |
 Tel.  (33)-(0)3 28 23 76 12                   | | Fax: 03 28 65 82 44
 189A, avenue Maurice Schumann                 | | 59140 Dunkerque, France
===========================================================================



>
> Bonjour,
>
> Je parle pour la lib pthread *en C* (je ne connais pas C++) :
>
> On 05/29/14 15:33, Patrick Dupre wrote:
> >
> >> Bonjour,
> >>
> >> J'essaie d'adapter un programme C++ en utilisant le pthreads.
> >>
> >> Est-ce que je peux passer 2 variables a Line
> >> ou bien faut-il que je passe par une structure ?
>
> Tu es obligé de passer par une structure, dont tu donnes l'adresse
> (convertie en (void *)) en dernier argument de pthread_create.
>
> >>
> >
> > J'oublais, est-ce que Line peut-etre une fonction membre ?
> > Car ca passe pas a la compilation (quand je ne mets q'une seule variable.
>
> Pas sûr de ce que tu entend par fonction membre.
> Quelle est l'erreur de compilation ?
>
> Ca peut peut-être venir du fait que la fonction passée à pthread_create
> doit retourner (void *) et prendre (void *) en argument.
>
> Les threads ont des piles d'appels séparées mais partage le tas. Si les
> objets C++ sont alloués sur le tas, alors ils sont partagés par tous les
> threads.
>
> En espérant que ca te vienne en aide,
> --
> Hugues Evrard
> INRIA / LIG - Team CONVECS
>
>