summaryrefslogtreecommitdiffstats
path: root/src/core/aspects/qaspectmanager.cpp
diff options
context:
space:
mode:
authorJanne Koskinen <janne.p.koskinen@theqtcompany.com>2016-04-22 14:25:15 +0300
committerAntti Määttä <antti.maatta@qt.io>2016-05-18 11:15:25 +0000
commit028bdfa4f7c7572421e887aeeeb71d193aeab576 (patch)
treea43704967dbf845b8bf45ee00448cf6384285943 /src/core/aspects/qaspectmanager.cpp
parent1a43b5c8a929d185313dcbf4b9eaa15ecc4bdb43 (diff)
Fix deadlock when quitting aspect manager
Stop waiting for next frame advance if we are about to shut down. Change-Id: I334c5afa69eb262d6e4e7139acc826fbd7aa9263 Task-number: QTBUG-50044 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/aspects/qaspectmanager.cpp')
-rw-r--r--src/core/aspects/qaspectmanager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp
index 790118c89..9df1112b0 100644
--- a/src/core/aspects/qaspectmanager.cpp
+++ b/src/core/aspects/qaspectmanager.cpp
@@ -99,6 +99,10 @@ void QAspectManager::exitSimulationLoop()
{
qCDebug(Aspects) << Q_FUNC_INFO;
m_runSimulationLoop.fetchAndStoreOrdered(0);
+ QAbstractFrameAdvanceService *frameAdvanceService =
+ m_serviceLocator->service<QAbstractFrameAdvanceService>(QServiceLocator::FrameAdvanceService);
+ if (frameAdvanceService)
+ frameAdvanceService->stop();
// Give any aspects a chance to unqueue any asynchronous work they
// may have scheduled that would otherwise potentially deadlock or