Ich habe an mehreren Stellen gelesen, dass Boost.Signals nicht threadsicher ist, aber ich habe nicht viel mehr Details darüber gefunden. Dieses einfache Zitat sagt nicht wirklich viel. Die meisten Anwendungen haben heutzutage Threads - auch wenn sie versuchen, Single-Threading zu sein, können einige ihrer Bibliotheken Threads verwenden (zum Beispiel libsdl).Boost: Was genau ist in Boost.Signals nicht threadsafe?
Ich denke, die Implementierung hat keine Probleme mit anderen Threads, die nicht auf den Steckplatz zugreifen. So ist es zumindest threadsicher in diesem Sinne.
Aber was genau funktioniert und was würde nicht funktionieren? Würde es funktionieren, es aus mehreren Threads zu verwenden, solange ich nicht gleichzeitig darauf zugreife? I.e. wenn ich meine eigenen Mutexe um den Schlitz herum baue?
Oder bin ich gezwungen, den Slot nur in dem Thread zu verwenden, in dem ich ihn erstellt habe? Oder wo ich es zum ersten Mal benutzt habe?
Es ist schon eine Weile her ... hat meine Antwort Sinn ergeben? Im Grunde wird die Signalbibliothek * selbst * nicht abstürzen, unabhängig von den Aufrufen, die Sie aus irgendwelchen Threads machen, solange sie "gültig" sind ... aber Sie sind verantwortlich für die Semantik in Ihrem eigenen Code. – HostileFork
Ja, es macht Sinn, aber es beantwortet nicht wirklich alle meine Fragen. :) Grundsätzlich hast du gesagt "schau es dir in der Quelle an". Ich werde das zu einem späteren Zeitpunkt tun und dann alle exakten Antworten auf meine Fragen hier posten. – Albert
Sie haben gefragt "Was genau funktioniert und was nicht funktioniert?" Ich fühlte, dass das wichtiger war, als Ihre engeren spezifischen Fragen zu analysieren.(Diese Antworten sind "Ja: Wenn Sie mit einem Mutex hüten, ist das in Ordnung, aber möglicherweise unnötig, wenn die Semantik Ihrer Slots so ist, dass mehr als ein Thread sie gleichzeitig ausführen kann; es ist wie eine andere Funktion aus mehreren Threads aufzurufen") und "Nein: Sie sind nicht darauf beschränkt, Slots nur in den Threads zu verwenden, in denen sie erstellt werden." – HostileFork