diff options
author | Milla Pohjanheimo <milla.pohjanheimo@qt.io> | 2016-10-18 14:05:12 +0300 |
---|---|---|
committer | Milla Pohjanheimo <milla.pohjanheimo@qt.io> | 2016-10-19 04:46:39 +0000 |
commit | 1a5a3f92add2248fb8308bbc40e941d48db8e9b5 (patch) | |
tree | 01e4f02d9f8601ed1056e1ccbbc8cf1a187a1094 | |
parent | 8c4b9eda3383a469ae47b8dedbf5093c5b4e10df (diff) |
Merge fix for tst_renderqueue::concurrentQueueAccess autotest to 5.6
The test is failing in 5.6 also.
Same as e8a691192d5646924453cd1c617eae1b3d2a93aa
Task-number: QTBUG-53915
Change-Id: I8075c65abc96536c3fafad912c07b73aa6e0b2d7
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | tests/auto/render/renderqueue/tst_renderqueue.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/tests/auto/render/renderqueue/tst_renderqueue.cpp b/tests/auto/render/renderqueue/tst_renderqueue.cpp index c571de2c0..daf672edd 100644 --- a/tests/auto/render/renderqueue/tst_renderqueue.cpp +++ b/tests/auto/render/renderqueue/tst_renderqueue.cpp @@ -145,9 +145,8 @@ class SimpleWorker : public QThread { Q_OBJECT public: - QWaitCondition m_waitTimeToSubmit; - QWaitCondition m_waitToFillQueue; - QMutex m_mutex; + QSemaphore m_waitSubmit; + QSemaphore m_waitQueue; Qt3DRender::Render::RenderQueue *m_renderQueues; public Q_SLOTS: @@ -155,9 +154,7 @@ public Q_SLOTS: void run() Q_DECL_FINAL // In Thread { for (int i = 0; i < 5; i++) { - QMutexLocker lock(&m_mutex); - m_waitToFillQueue.wait(&m_mutex); - lock.unlock(); + m_waitQueue.acquire(); QVERIFY(m_renderQueues->currentRenderViewCount() == 0); QVERIFY(!m_renderQueues->isFrameQueueComplete()); @@ -175,7 +172,7 @@ public Q_SLOTS: } QVERIFY(m_renderQueues->isFrameQueueComplete()); - m_waitTimeToSubmit.wakeOne(); + m_waitSubmit.release(); } } }; @@ -198,14 +195,10 @@ void tst_RenderQueue::concurrentQueueAccess() // Start thread jobsThread->start(); - QThread::msleep(500); // To be sure the thread is properly started - - jobsThread->m_waitToFillQueue.wakeAll(); + jobsThread->m_waitQueue.release(); for (int i = 0; i < 5; ++i) { - QMutexLocker lock(&jobsThread->m_mutex); - jobsThread->m_waitTimeToSubmit.wait(&jobsThread->m_mutex); - lock.unlock(); + jobsThread->m_waitSubmit.acquire(); // WHEN unlocked // THEN @@ -214,7 +207,7 @@ void tst_RenderQueue::concurrentQueueAccess() // reset queue for next frame renderQueue->reset(); - jobsThread->m_waitToFillQueue.wakeAll(); + jobsThread->m_waitQueue.release(); } jobsThread->wait(); } |