Frage zu Qthread und Qmutex
Verfasst: 16. Dezember 2009 16:13
Hallo NG,
ich glaube, das was ich gebaut habe ist deutlich zu umständlich und dazu noch fehlerhaft. Evtl. kann mir jemand eine elegantere Lösung zeigen.
Was ich versucht habe sieht so aus:
Die while-Schleife läuft in einem Thread solange serverOn true ist. Aus dem Hauptthread will ich nun diese Variable auf False setzen damit der thread dann beendet wird. Das Problem liegt nun schon darin, dass ja auf die Variable mutex von zwei verschiedenen Threads aus zu gregriffen wird...
Hat jemand einen Tipp?
Grüße Rumbert
ich glaube, das was ich gebaut habe ist deutlich zu umständlich und dazu noch fehlerhaft. Evtl. kann mir jemand eine elegantere Lösung zeigen.
Was ich versucht habe sieht so aus:
Code: Alles auswählen
void Processor::run()
{
bool ever = false;
mutex.lock();
if (serverOn)
ever = true;
else if (!serverOn)
ever = false;
mutex.unlock();
while (ever)
{
...
processMessageFromQueue();
...
msleep(2);
mutex.lock();
if (serverOn)
ever = true;
else if (!serverOn)
ever = false;
mutex.unlock();
}
}
void Processor::stopTheThread()
{
mutex.lock();
serverOn = false;
mutex.unlock();
...
}
Hat jemand einen Tipp?
Grüße Rumbert