Bonjour,
J'aimerais savoir pourquoi les signaux de boost ne sont pas thread safe?
ne peut-on vraiment pas les utiliser si on protege nos fonctions slots?
Merci beaucoup d'avance.
Bonjour,
J'aimerais savoir pourquoi les signaux de boost ne sont pas thread safe?
ne peut-on vraiment pas les utiliser si on protege nos fonctions slots?
Merci beaucoup d'avance.
Pourquoi : Parce que c'est plus compliqué, ya un cout, que sais-je encore...
Perso, je les ai utilisé quand même, et ça marche en ajoutant le code qui va bien. De mémoire (ça va faire 1,5 ans de ça), ce qui posait le plus de problème, c'était l'ajout/suppression de slot pendant que l'on parcours la liste des slots (pas pendant que le slot est en cours d'exécution).
Donc j'ai mis en place un mutex lors de l'ajout/suppression de slots, ainsi qu'au déclenchement d'un slot, et je wrap chaque slot de telle façon que pendant l'exécution du slot, ce mutex est libéré (l'inverse du RAII en sorte...), ce qui me permet de manipuler la liste des slots pendant l'exécution d'un slot, ce dont j'avais besoin.
Maintenant, je ne sais pas si mon pattern d'utilisation couvre tous les cas d'ennuis possibles.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Une version thread-safe est en cours de préparation, je ne sais pas ce que ça donne...
Si ca t'interresse,
Qt fournie dans le même styles, des connections thread-safe
... en fait je m'éloigne de Qt,
J'utilise le plus possible boost. Je ne veux plus aucune dependance à Qt.
Si j'utilise Qt, ce sera strictement pour l'interface!!!
Je cherche en fait une bonne alternative d'ailleurs.
si quelqu'un a de l'experience sur une autre lib qui soit multi-plateforme Linux/Macosx/Windows, je suis tout à son écoute.
Partager