boost::unique_lock sur un shared_lock [Solved] - C++ - Programmation
MarshPosté le 20-09-2010 à 18:15:06
J'utilise boost::thread pour une application, et bien que mon code commence à maturer ( ) j'ai parfois de soucis de synchronisation (semble-t-il, car ce problème ne survient que si j'utilise plus d'un thread pour traiter).
J'ai supprimé carrément un appel a un unique_lock, lors de l'écriture (situation single-writer, multiple-readers), pour voir : ben ça fait pareil, de temps en temps une écriture sur le meme endroit. C'est comme si mon unique_lock n'attendait pas que tous les lecteurs aient terminé. Exemple :
Je m'attend à ce que le thread qui rentre dans la section écriture attende que tous les lecteurs aient relaché leur lock (shared), pour ensuite prendre un lock exclusif (aucun lecteur ne peut entrer dans une section lecture), ecrit, relache, les lecteurs peuvent reprendre.
Si c'est bien cela qui se passe, alors j'ai un bug quelque part
[edit] Bon ben solved, mon bug était pas si difficile à trouver… Donc ça se comporte comme attendu
Marsh Posté le 20-09-2010 à 18:15:06
J'utilise boost::thread pour une application, et bien que mon code commence à maturer ( ) j'ai parfois de soucis de synchronisation (semble-t-il, car ce problème ne survient que si j'utilise plus d'un thread pour traiter).
J'ai supprimé carrément un appel a un unique_lock, lors de l'écriture (situation single-writer, multiple-readers), pour voir : ben ça fait pareil, de temps en temps une écriture sur le meme endroit. C'est comme si mon unique_lock n'attendait pas que tous les lecteurs aient terminé.
Exemple :
Section d'écriture :
Section lecture :
Je m'attend à ce que le thread qui rentre dans la section écriture attende que tous les lecteurs aient relaché leur lock (shared), pour ensuite prendre un lock exclusif (aucun lecteur ne peut entrer dans une section lecture), ecrit, relache, les lecteurs peuvent reprendre.
Si c'est bien cela qui se passe, alors j'ai un bug quelque part
[edit] Bon ben solved, mon bug était pas si difficile à trouver… Donc ça se comporte comme attendu
Message édité par guepe le 20-09-2010 à 20:09:36
---------------
Un blog qu'il est bien