diff options
Diffstat (limited to 'src/corelib/thread/qfutureinterface_p.h')
-rw-r--r-- | src/corelib/thread/qfutureinterface_p.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/corelib/thread/qfutureinterface_p.h b/src/corelib/thread/qfutureinterface_p.h index 9bf87d4db3..92a1072591 100644 --- a/src/corelib/thread/qfutureinterface_p.h +++ b/src/corelib/thread/qfutureinterface_p.h @@ -29,7 +29,11 @@ QT_REQUIRE_CONFIG(future); QT_BEGIN_NAMESPACE -class Q_AUTOTEST_EXPORT QFutureCallOutEvent : public QEvent +// Although QFutureCallOutEvent and QFutureCallOutInterface are private, +// for historical reasons they were used externally (in QtJambi, see +// https://github.com/OmixVisualization/qtjambi), so we export them to +// not break the pre-existing code. +class Q_CORE_EXPORT QFutureCallOutEvent : public QEvent { Q_DECL_EVENT_COMMON(QFutureCallOutEvent) public: @@ -137,7 +141,7 @@ public: QThreadPool *m_pool = nullptr; // Wrapper for continuation std::function<void(const QFutureInterfaceBase &)> continuation; - QFutureInterfaceBasePrivate *parentData = nullptr; + QFutureInterfaceBasePrivate *continuationData = nullptr; RefCount refCount = 1; QAtomicInt state; // reads and writes can happen unprotected, both must be atomic @@ -156,6 +160,9 @@ public: bool isValid = false; bool hasException = false; + enum ContinuationState : quint8 { Default, Canceled, Cleaned }; + std::atomic<ContinuationState> continuationState { Default }; + inline QThreadPool *pool() const { return m_pool ? m_pool : QThreadPool::globalInstance(); } |