J'ai lu à plusieurs endroits que Boost.Signals n'est pas threadsafe mais je n'ai pas trouvé beaucoup plus de détails à ce sujet. Cette simple citation ne dit pas vraiment ça. La plupart des applications ont de nos jours des threads - même si elles essayent d'être à thread unique, certaines de leurs bibliothèques peuvent utiliser des threads (par exemple libsdl).Boost: quoi exactement n'est pas threadsafe dans Boost.Signals?
Je suppose que l'implémentation n'a pas de problèmes avec les autres threads qui n'accèdent pas au slot. Donc, il est au moins threadsafe dans ce sens.
Mais qu'est-ce qui fonctionne exactement et qu'est-ce qui ne fonctionnerait pas? Serait-il utile de l'utiliser à partir de plusieurs threads tant que je n'y accède jamais en même temps? C'est à dire. si je construis mes propres mutex autour de la fente? Ou est-ce que je suis obligé d'utiliser l'emplacement seulement dans ce fil où je l'ai créé? Ou où je l'ai utilisé pour la première fois?
Ça fait longtemps ... ma réponse à cette question a-t-elle du sens? Fondamentalement, la bibliothèque de signaux * elle-même * ne va pas planter, quels que soient les appels que vous effectuez à partir des threads tant qu'ils sont "valides" ... mais vous êtes responsable de la sémantique dans votre propre code. – HostileFork
Oui, c'est logique mais ça ne répond pas vraiment à toutes mes questions. :) Fondamentalement, vous avez dit "regardez dans la source". Je le ferai plus tard et posterai ensuite toutes les réponses exactes à mes questions ici. – Albert
Vous avez demandé "qu'est-ce qui fonctionne exactement et qu'est-ce qui ne fonctionne pas?" J'ai senti que c'était plus essentiel que de disséquer vos questions spécifiques plus étroites.(Ces réponses sont "Oui: si vous gardez avec un mutex c'est bien, mais peut-être inutile si la sémantique de vos slots est telle que plus d'un thread peut les exécuter à la fois, c'est comme appeler une autre fonction de plusieurs threads" et "Non: vous n'êtes pas limité à l'utilisation de slots uniquement dans les threads où ils sont créés.") – HostileFork