Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème à l'Usage des mutexs  (Lu 3940 fois)

0 Membres et 1 Invité sur ce sujet

Faith Gamer

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Problème à l'Usage des mutexs
« le: Février 14, 2018, 08:57:38 pm »
Salut,

Alors voilà je ne sais pas trop comment utiliser un mutex afin qu'il puisse lock un boût de code à l'intérieur d'une méthode qui est elle même utilisée par un thread.

Voici  un code minimal qui montre ce que je fais dans mon programme et qui ne fonctionne pas (ça compile mais l'usage du mutex n'est pas fonctionnel)

main.cpp:
#include "objet.h"

int main()
{
    Maclasse obt;
    sf::Thread t(&Maclasse::func, &obt);

    t.launch();

    mutex.lock();

    for(int i=0;i<500;i++)
        std::cout << "aurevoir" << std::endl;

    mutex.unlock();

    return 0;
}
 
objet.h
#include "header.h"

class Maclasse
{
public:
    void func();
private:
};
 
objet.cpp
#include "objet.h"

void Maclasse::func()
{

    mutex.lock();

    for(int i=0;i<500;i++)
        std::cout << "bonjour" << std::endl;

    mutex.unlock();
}
 
header.h
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <math.h>

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Network.hpp>

static sf::Mutex mutex;
 

Avec ce code, bonjour et aurevoir s'affichent mélangés dans la console, ce que je souhaiterai éviter.

Merci pour votre lecture et votre temps, j'attends vos conseils :).

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème à l'Usage des mutexs
« Réponse #1 le: Février 14, 2018, 09:07:32 pm »
Avec ce que tu as fait tu as plusieurs variables mutex. Reprends tes bases de C++, au chapitre des variables globales.
Laurent Gomila - SFML developer

Faith Gamer

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Problème à l'Usage des mutexs
« Réponse #2 le: Février 14, 2018, 09:21:23 pm »
Merci pour ta réponse rapide,
Je n'ai pas été renseigné dans mes cours de C++ sur l'usage des variables globales. Donc la je cherche sur google variables globale c++ mais je trouve pas grand chose, tu saurais me diriger ?

Par ailleurs en écrivant mon problème je me suis rendu compte que j'incluais deux fois objet.h, mais dans mon programme original les inclusions des .h ne se répètent pas. (Bon je vais quand même vérifier mais c'est un truc sur lequel j'ai été attentif.)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème à l'Usage des mutexs
« Réponse #3 le: Février 15, 2018, 06:39:38 am »
Citer
Donc la je cherche sur google variables globale c++ mais je trouve pas grand chose
Sérieusement ? ...

Regarde du côté du mot-clé "extern".
Laurent Gomila - SFML developer

Faith Gamer

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Problème à l'Usage des mutexs
« Réponse #4 le: Février 15, 2018, 12:56:30 pm »
C'est bon j'ai fini par trouver. Merci pour ton aide, lol.