Forum de la communauté SFML

Aide => Système => Discussion démarrée par: Faith Gamer le Février 14, 2018, 08:57:38 pm

Titre: Problème à l'Usage des mutexs
Posté par: Faith Gamer 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 :).
Titre: Re: Problème à l'Usage des mutexs
Posté par: Laurent 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.
Titre: Re: Problème à l'Usage des mutexs
Posté par: Faith Gamer 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.)
Titre: Re: Problème à l'Usage des mutexs
Posté par: Laurent 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".
Titre: Re: Problème à l'Usage des mutexs
Posté par: Faith Gamer le Février 15, 2018, 12:56:30 pm
C'est bon j'ai fini par trouver. Merci pour ton aide, lol.