summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-29 11:00:42 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2016-01-29 12:55:06 +0000
commit270cc073b7e0fbc34d635aa70788e70d66433334 (patch)
tree9efaa30f2798b70857bb9bb0fe4912d57bc93167 /src/corelib
parent0ec1e13234684feb632fc980ba2a90db9a2dd936 (diff)
parenta81036c3cc13d16dfc84903babe4774f5578787b (diff)
Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/thread/qfutureinterface.cpp3
-rw-r--r--src/corelib/thread/qfutureinterface_p.h10
2 files changed, 9 insertions, 4 deletions
diff --git a/src/corelib/thread/qfutureinterface.cpp b/src/corelib/thread/qfutureinterface.cpp
index 05c4371a58..60155c96fd 100644
--- a/src/corelib/thread/qfutureinterface.cpp
+++ b/src/corelib/thread/qfutureinterface.cpp
@@ -193,16 +193,19 @@ void QFutureInterfaceBase::waitForResume()
int QFutureInterfaceBase::progressValue() const
{
+ const QMutexLocker lock(&d->m_mutex);
return d->m_progressValue;
}
int QFutureInterfaceBase::progressMinimum() const
{
+ const QMutexLocker lock(&d->m_mutex);
return d->m_progressMinimum;
}
int QFutureInterfaceBase::progressMaximum() const
{
+ const QMutexLocker lock(&d->m_mutex);
return d->m_progressMaximum;
}
diff --git a/src/corelib/thread/qfutureinterface_p.h b/src/corelib/thread/qfutureinterface_p.h
index 2321ce8d72..e2d588cd07 100644
--- a/src/corelib/thread/qfutureinterface_p.h
+++ b/src/corelib/thread/qfutureinterface_p.h
@@ -146,18 +146,20 @@ public:
QAtomicInt m_refCountT;
};
+ // T: accessed from executing thread
+ // Q: accessed from the waiting/querying thread
RefCount refCount;
mutable QMutex m_mutex;
QWaitCondition waitCondition;
QList<QFutureCallOutInterface *> outputConnections;
- int m_progressValue;
- int m_progressMinimum;
- int m_progressMaximum;
+ int m_progressValue; // TQ
+ int m_progressMinimum; // TQ
+ int m_progressMaximum; // TQ
QFutureInterfaceBase::State state;
QElapsedTimer progressTime;
QWaitCondition pausedWaitCondition;
QtPrivate::ResultStoreBase m_results;
- bool manualProgress;
+ bool manualProgress; // only accessed from executing thread
int m_expectedResultCount;
QtPrivate::ExceptionStore m_exceptionStore;
QString m_progressText;