summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilla Pohjanheimo <milla.pohjanheimo@qt.io>2016-10-18 14:05:12 +0300
committerMilla Pohjanheimo <milla.pohjanheimo@qt.io>2016-10-19 04:46:39 +0000
commit1a5a3f92add2248fb8308bbc40e941d48db8e9b5 (patch)
tree01e4f02d9f8601ed1056e1ccbbc8cf1a187a1094
parent8c4b9eda3383a469ae47b8dedbf5093c5b4e10df (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.cpp21
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();
}