summaryrefslogtreecommitdiffstats
path: root/src/core/aspects/qaspectmanager.cpp
diff options
context:
space:
mode:
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 3c7816081..80faef768 100644
--- a/src/core/aspects/qaspectmanager.cpp
+++ b/src/core/aspects/qaspectmanager.cpp
@@ -68,6 +68,7 @@ QAspectManager::QAspectManager(QObject *parent)
, m_changeArbiter(new QChangeArbiter(this))
, m_serviceLocator(new QServiceLocator())
, m_waitForEndOfExecLoop(0)
+ , m_waitForQuit(0)
{
qRegisterMetaType<QSurface *>("QSurface*");
m_runMainLoop.fetchAndStoreOrdered(0);
@@ -227,6 +228,7 @@ void QAspectManager::exec()
qCDebug(Aspects) << Q_FUNC_INFO << "Exiting event loop";
m_waitForEndOfExecLoop.release(1);
+ m_waitForQuit.acquire(1);
}
void QAspectManager::quit()
@@ -244,6 +246,8 @@ void QAspectManager::quit()
// We need to wait for the QAspectManager exec loop to terminate
m_waitForEndOfExecLoop.acquire(1);
+ m_waitForQuit.release(1);
+
qCDebug(Aspects) << Q_FUNC_INFO << "Exited event loop";
}