Seite 1 von 1

Verständnisfrage Signal Slot

Verfasst: 17. Juli 2011 16:10
von anno1988
Hallo zusammen,

ich hätte mal eine Verständnisfrage zum Thema Signal und Slot.
  • Die connect Funktion ist ja thread-safe, sobald man ein Signal mit emit sendet. Ist das Ganze dann auch thread-safe, wenn man einen slot direkt aufruft (also z.B. klassen_objekkt->slot123(); ?
  • Kann man, wenn man Signals und Slot miteinander verbunden hat (mit der connect Funktion) und man mit emit ein Signal sendet, dieses an speziefische Slot senden, also nicht dass alle Slots das signal erhalten?
danke im Voraus für die Beantwortung.

Re: Verständnisfrage Signal Slot

Verfasst: 17. Juli 2011 17:47
von Christian81
Nur weil die connect() Funktion threadsafe ist heißt es nicht dass dann automatisch alles was irgendwie da dran hängt threadsafe ist. Das ist schon dein Problem.
Und zur zweiten Frage - nein.

Re: Verständnisfrage Signal Slot

Verfasst: 20. Juli 2011 12:19
von RHBaum
Die connect Funktion ist ja thread-safe, sobald man ein Signal mit emit sendet.
die connect funktion selber ist thread safe, aber das ist ueberhaupt ned was du meinst ^^
das heisst nur, dass du connects (und damit meine ich wirklich connect(... ... ... ) ) aus mehreren threads raus aufrufen darfst ^^

Ich denke was du meinst, iss das der SIGNAL/SLOT mechanismus nen threadwechsel fuer Dich macht .... und das ist komplett anderes Kino.

und noch was, thread safe heisst nicht, das alles was du bei ner funktion verwendest, schon gegen multithreading abgesichert ist, sondern nur, das du in der Lage bist, das ueberhaupt selber abzusichern.
machen musst es eh allein. Am ende garantiert dir ne thread-safe funktion nur, das es keine Nebeneffekte gibt, auf die du keinen einfluss hasst ... beispielsweisse statische variablen etc verwendet werden.

"threadsafe" nicht mit "reentrant" verwechseln ...

Ciao ...