Merge integration refs/builds/qtci/dev/1616415197

This commit is contained in:
Qt CI Bot 2021-03-22 16:45:12 +00:00
commit f5e300bf6a
2 changed files with 18 additions and 19 deletions

View File

@ -606,9 +606,7 @@ void QFutureInterfaceBase::rethrowPossibleException()
}
QFutureInterfaceBasePrivate::QFutureInterfaceBasePrivate(QFutureInterfaceBase::State initialState)
: refCount(1), m_progressValue(0), m_progressMinimum(0), m_progressMaximum(0),
state(initialState),
manualProgress(false), m_expectedResultCount(0), runnable(nullptr), m_pool(nullptr)
: state(initialState)
{
progressTime.invalidate();
}

View File

@ -161,23 +161,30 @@ public:
// T: accessed from executing thread
// Q: accessed from the waiting/querying thread
RefCount refCount;
mutable QMutex m_mutex;
QWaitCondition waitCondition;
QBasicMutex continuationMutex;
QList<QFutureCallOutInterface *> outputConnections;
int m_progressValue; // TQ
int m_progressMinimum; // TQ
int m_progressMaximum; // TQ
QAtomicInt state; // reads and writes can happen unprotected, both must be atomic
QElapsedTimer progressTime;
QWaitCondition waitCondition;
QWaitCondition pausedWaitCondition;
// ### TODO: put m_results and m_exceptionStore into a union (see QTBUG-92045)
QtPrivate::ResultStoreBase m_results;
bool manualProgress; // only accessed from executing thread
int m_expectedResultCount;
QtPrivate::ExceptionStore m_exceptionStore;
QString m_progressText;
QRunnable *runnable;
QThreadPool *m_pool;
QRunnable *runnable = nullptr;
QThreadPool *m_pool = nullptr;
// Wrapper for continuation
std::function<void(const QFutureInterfaceBase &)> continuation;
RefCount refCount = 1;
QAtomicInt state; // reads and writes can happen unprotected, both must be atomic
int m_progressValue = 0; // TQ
int m_progressMinimum = 0; // TQ
int m_progressMaximum = 0; // TQ
int m_expectedResultCount = 0;
bool manualProgress = false; // only accessed from executing thread
bool launchAsync = false;
bool isValid = false;
inline QThreadPool *pool() const
{ return m_pool ? m_pool : QThreadPool::globalInstance(); }
@ -196,12 +203,6 @@ public:
void setState(QFutureInterfaceBase::State state);
// Wrapper for continuation
std::function<void(const QFutureInterfaceBase &)> continuation;
QBasicMutex continuationMutex;
bool launchAsync = false;
bool isValid = false;
};
QT_END_NAMESPACE