IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

acces aux attributs dans methode threader


Sujet :

C++

  1. #1
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut acces aux attributs dans methode threader
    Bonjour

    j'ai un probleme avec mes attributs
    je crée un thread pour mon client

    et dans ma méthode run je n'accedes plus à mes attributs
    en fait je change le rep(booleen) quand j'ai un message, je le mets a true
    et dans le run je teste ce booleen
    mais dans le run il change pas
    et la meme chose pour mon tampon de message
    mes attributs sont en private dans mon en tete(.h)

    d'avance merci pour tout conseil
    Classe Client.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    //Surcharge du constructeur
    void Client :: initSock(int csock){
    	sock=csock;
     
    	std::cout<<"Client :: ajout 1 client : "<<sock<<std::endl;
    	//Lancement du Thread
    	pthread_t unThread;
    	if((idThread = pthread_create(&unThread,NULL,threadClient,this))== -1){
    		perror("Error :: create thread failure ");
    		exit(0);
    	}
    }void Client :: run(){
    	rep=false;
    	while(1){
     
    	if(rep){
    		if((send(sock,msgTampon.c_str(),strlen(msgTampon.c_str())+1,0))== -1){
    		perror("Error : send ");
    		}
    		rep=false;
    	}
     
     
    	}
    }
     
    //Envoyer messge au client
     void Client :: sendMsg(std::string msg){
     
    	 msgTampon=msg;
    	 std::cout<<"met dans tampon "<<msgTampon<<std::endl;
    	 rep=true;
     }
     
    //Creation de thread pour chaque client
     void * threadClient(void * zz){
    	 Client * p=(Client *)zz;
    	 p->run();
     }

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Utilise un objet de synchronisation (event, etc.) au lieu d'un simple booléen : L'optimiseur n'aime pas trop.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    bon ct pas trop la réponse a ma question

    mais je profite de ta réponse pour voir le event

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    tu n'appelles pas SendMsg mais send donc tu ne remets pas à true rep

Discussions similaires

  1. [POO] Acces aux attributs d'un objet depuis une methode evenement :s
    Par NikoGJ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/07/2006, 19h01
  2. Acces aux attributs d'un bean dans une jsp
    Par mariemor64 dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/06/2006, 10h32
  3. Accès aux attributs d'une balise HTML
    Par tatou42 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/02/2006, 14h01
  4. [Noyau] Accès aux blocks dans le buffer cache
    Par gtaoufik dans le forum Oracle
    Réponses: 12
    Dernier message: 26/08/2005, 14h17
  5. [DOM] Accès aux attributs d'un noeud
    Par vasilov dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 13/07/2005, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo