Reputation: 4575
Are QMutex+QWaitCondition objects reusable? I have a method to wait for some threads to complete.
void FinishWait()
{
mutex.lock();
waitCondition(&qMutex, ULONG_MAX);
}
The waitCondition.wakeOne() is called on a different Thread.
The first call to FinishWait() works but the the second call doesn't return even if I specify timeout.
Upvotes: 1
Views: 2160
Reputation: 30449
Assuming "mutex" and "qMutex" mean the same variable (it doesn't make much sense otherwise), you need to unlock the mutex after the wait() returns.
void FinishWait()
{
mutex.lock();
waitCondition.wait(&mutex);
mutex.unlock();
}
Upvotes: 4