Am I allowed to use the QMutex in the strange way: lock the QMutex in one thread, then unlock it in the other thread?
QMutex lock in one thread and unlock in the other thread
1.4k views Asked by osgx At
2
There are 2 answers
2
On
No, you can't do that:
Doc to QMutex::unlock()
"Unlocks the mutex. Attempting to unlock a mutex in a different thread to the one that locked it results in an error. Unlocking a mutex that is not locked results in undefined behavior."
Yes, it is indeed in shared memory, but there's no way to change it in a standard way.
According to the documentation of QMutex this results in an error:
But instead of a QMutex you can use a QSemaphore as a binary semaphore, to achieve the wanted behavior.