From 1a5a3f92add2248fb8308bbc40e941d48db8e9b5 Mon Sep 17 00:00:00 2001 From: Milla Pohjanheimo Date: Tue, 18 Oct 2016 14:05:12 +0300 Subject: Merge fix for tst_renderqueue::concurrentQueueAccess autotest to 5.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test is failing in 5.6 also. Same as e8a691192d5646924453cd1c617eae1b3d2a93aa Task-number: QTBUG-53915 Change-Id: I8075c65abc96536c3fafad912c07b73aa6e0b2d7 Reviewed-by: Antti Määttä Reviewed-by: Paul Lemire --- tests/auto/render/renderqueue/tst_renderqueue.cpp | 21 +++++++-------------- 1 file 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(); } -- cgit v1.2.3