diff options
author | Janne Koskinen <janne.p.koskinen@theqtcompany.com> | 2016-04-22 14:25:15 +0300 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2016-05-18 11:15:25 +0000 |
commit | 028bdfa4f7c7572421e887aeeeb71d193aeab576 (patch) | |
tree | a43704967dbf845b8bf45ee00448cf6384285943 /src/core/aspects/qaspectmanager.cpp | |
parent | 1a43b5c8a929d185313dcbf4b9eaa15ecc4bdb43 (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.cpp | 4 |
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 |