[gelöst]QMutex RecursionMode auf Recursive stellen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
woody
Beiträge: 85
Registriert: 1. April 2011 21:13

[gelöst]QMutex RecursionMode auf Recursive stellen

Beitrag von woody »

Hallo

Ich habe eine Klasse, die als Member ein

Code: Alles auswählen

QMutex mutex(QMutex::Recursive);
besitzt.
Der Compiler sagt immer, dass QMutex::Recursive kein type name ist.
Was mach ich falsch?

danke
Zuletzt geändert von woody am 9. Mai 2011 12:58, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Wenn das SO in der Klassendefinition steht, ist das ein Fehler. Da darfst du nur Member deklarieren, nicht gleich definieren (es gibt Ausnahmen, die hier aber nicht interessieren).
Die Initialisierung erfolgt im Konstruktor, gleich in der Initialisierungssliste.
woody
Beiträge: 85
Registriert: 1. April 2011 21:13

Beitrag von woody »

ok danke für die Antwort. Wahrscheinlich ist das eine dumme Frage, aber wie initialisier ich das dann im Konstruktor, bei Pointern is ja klar mit new, aber wie mach ich das bei einer Member, die am Stack liegt.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Code: Alles auswählen

class Klasse {
QMutex mutex_;
public:
    Klasse()
     : mutex_(QMutex::Recursive)
    {}
};
Sind aber absolute Grundlagen. Bist du dir sicher, was du mit dem Recursive anstellst?
woody
Beiträge: 85
Registriert: 1. April 2011 21:13

Beitrag von woody »

ok danke, is klar.

ja Recursive bedeutet, dass ein Thread den selben mutex immer wieder locken kann, sofern er dann oft genug einen unlock macht. Zurzeit bin ich dann immer in einen Deadlock geraten.
Antworten