diff options
Diffstat (limited to 'src/core/aspects/qabstractaspect.cpp')
-rw-r--r-- | src/core/aspects/qabstractaspect.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp index 710522356..d7e62db68 100644 --- a/src/core/aspects/qabstractaspect.cpp +++ b/src/core/aspects/qabstractaspect.cpp @@ -290,7 +290,15 @@ QAbstractAspectJobManager *QAbstractAspectPrivate::jobManager() const QVector<QAspectJobPtr> QAbstractAspectPrivate::jobsToExecute(qint64 time) { Q_Q(QAbstractAspect); - return q->jobsToExecute(time); + auto res = q->jobsToExecute(time); + + { + QMutexLocker lock(&m_singleShotMutex); + res << m_singleShotJobs; + m_singleShotJobs.clear(); + } + + return res; } /*! @@ -332,6 +340,13 @@ void QAbstractAspect::onEngineShutdown() { } +void QAbstractAspect::scheduleSingleShotJob(const Qt3DCore::QAspectJobPtr &job) +{ + Q_D(QAbstractAspect); + QMutexLocker lock(&d->m_singleShotMutex); + d->m_singleShotJobs.push_back(job); +} + namespace Debug { AsynchronousCommandReply::AsynchronousCommandReply(const QString &commandName, QObject *parent) |