Signals: Segmentation fault nach emit
Verfasst: 15. Februar 2007 18:37
Hallo,
bin absolut neu hier und habe die Suche verwendet (leider ohne Erfolg).
Ich habe folgendes Problem:
Zwei Threads:
* einer empfängt Chat-Nachrichten (= erzeugt die Signale)
* der andere ist für die Darstellung zuständig (= wartet auf die Signale und zeigt die Nachrichten an).
Wenn ich nun mit emit ein Signal erzeuge, als Parameter einen char* auf die eingetroffene Chat-Nachricht mitgebe, und diesen Pointer mit free wieder freimache, dann bekomme ich meist einen Segmentation Fault im Anzeige-Thread. OK, Grund dafür dürfte laut QT-Faq sein, dass bei mehreren Threads die Slots gequeued werden und das emit schon früher zurückkehrt.
Was kann ich nun machen, dass kein Speicherloch zurückbleibt? Ich muss diesen char* doch irgendwann mal freimachen...
Oder muss ich in diesem Fall QStrings verwenden, da diese durch den Garbage Collector irgendwann dann weggeräumt werden?
bin absolut neu hier und habe die Suche verwendet (leider ohne Erfolg).
Ich habe folgendes Problem:
Zwei Threads:
* einer empfängt Chat-Nachrichten (= erzeugt die Signale)
* der andere ist für die Darstellung zuständig (= wartet auf die Signale und zeigt die Nachrichten an).
Wenn ich nun mit emit ein Signal erzeuge, als Parameter einen char* auf die eingetroffene Chat-Nachricht mitgebe, und diesen Pointer mit free wieder freimache, dann bekomme ich meist einen Segmentation Fault im Anzeige-Thread. OK, Grund dafür dürfte laut QT-Faq sein, dass bei mehreren Threads die Slots gequeued werden und das emit schon früher zurückkehrt.
Was kann ich nun machen, dass kein Speicherloch zurückbleibt? Ich muss diesen char* doch irgendwann mal freimachen...
Oder muss ich in diesem Fall QStrings verwenden, da diese durch den Garbage Collector irgendwann dann weggeräumt werden?