I am trying to pause my thread waiting for an user action. I know I could use Qt::BlockingQueuedConnection but that is not the point here. I would like to use QWaitCondition but I don't understand in this particular case why I need a QMutex. Consider this code :
class MyWorker: public QThread
{
    private:
        QMutex mDummy;
        QWaitCondition mStep1;
        void doStuff1(){}
        void doStuff2(){}
    signals:
        void step1Finished();
    public:
        MyWorker(...): {}
    protected:
        void run()
        {
            doStuff1();
            emit step1Finished();
            mDummy.lock();
            mStep1.wait(mDummy);
            mDummy.unlock();
            doStuff2();
        }
}
In this case the QMutex mDummy seems useless to me. I use it only because wait() need it as parameter. I know that wait() unlock the mutex then (re)lock it after waking up, but why there no possibility to use wait() without it?
 
     
    