bonjour
je voudrais faire la chose suivante
dans la réalité quand je met un << endl il fait l'unlock
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 mutex m; m.lock(); cout << "alpha"; m.lock(); cout << "beta"; m.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
avec un trhead qui peut appeler funcA puis FuncB puis FuncEnd
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
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 ?
Partager