C++ (Qt)if (CheckSomething()) condition.wait(&mutex);
if( ! condition.wait(&mutex) ) // по описанию 4.7 должно быть false, если мутекс не залочен, но тут падает mutex.lock();
void MyThread::run() { // init mContinue = new QMutex; mWaitCondition = new QWaitCondition; while(running) { lock(); // do stuff unlock(); if (pause) { mWaitCondition->wait(mContinue); } exec(); }}void MyThread::pause() { pause = true; }void MyThread::resume() { if (pause) { pause = false; mWaitCondition->wakeAll(); }}