Bonjour,

Je voudrais poser une question qui va peut-etre parraitre stupide aux plus chevronnés d'entre vous mais je me trouve confronté à un probleme que je n'arrive pas à résoudre au sujet des mutex.

Mon probleme est le suivant j'ai une classe d'objet dont les contenus devraient etres protégés par sémaphore pour des accès multi threadés en gros quelquechose du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
#include <boost/thread/thread.hpp>
 
class MonObjet {
    private :
        std::vector<int> mesData;
        boost::mutex    monSemaphore;
    public :
        MonObjet() {}
        ~MonObjet() { mesData.clear(); }
};
Lorsque je fais cela évidemment du au fait que mutex est noncopiable (ce qui se comprend tres bien) je me retrouve à ne pas pouvoir faire de copie toutes simple de mon objet.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 MonObjet a = MonObjet();
Alors ma première idée à été de surcharger les constructeurs par copie et l'operateur d'affectation pour que le second objet se construise son propre mutex. cependant lorsque je réécris ma propre copie il faut que je le fasse de facon sécurisée ... donc que je lock le mutex de l'objet source ... sauf que ce n'est pas possible puisque l'objet source est const .... en parametre du constructeur par copie...

enfin bon j'aimerais savoir si c'est uin probleme connu et si quelqu'un a des solutions à me proposer pour ca
Merci d'avance

@++
Seb