[mutex et ofstream] erreur
bonjour
je voudrais faire la chose suivante
Code:
1 2 3 4 5 6
| mutex m;
m.lock();
cout << "alpha";
m.lock();
cout << "beta";
m.unlock() |
dans la réalité quand je met un << endl il fait l'unlock
mais ce que je comprend pas c'est que dans le même thread (l'application j'ai une erreur sur le cout << "beta", je pensais naïvement qu'on pouvait dans le même thread prendre plusieurs fois le mutex et le libérer une seule fois
des que j'en prend deux ca coince
pour expliquer j'aurais
Code:
1 2 3 4 5 6 7 8 9 10 11
| void funcA(){
m.lock();
cout << "alpha";
}
void funcB(){
m.lock();
cout << "beta";
}
void funcEnd(){
m.unlock();
} |
avec un trhead qui peut appeler funcA puis FuncB puis FuncEnd
un autre FuncB puis FuncEnd
et un troisième funcA puis FuncEnd
dans la réalité j'ai surchargé l'operateur << dans un classe donc je sais pas vraiment dans quelle surcharge on passera en premier
vous avez une idée ?