summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qfutureinterface.cpp
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2023-03-09 13:22:12 +0100
committerIvan Solovev <ivan.solovev@qt.io>2023-03-28 09:45:55 +0100
commit502a7706b94380d4957a7e594fc7c4c4db8ae81b (patch)
tree2448680a8c17ded8ea5cac9e7a54c68cc9750621 /src/corelib/thread/qfutureinterface.cpp
parente8622fb2046f94fb2c8b9a9d0c1cec6d082485e8 (diff)
QFutureInterface: add a warning when an existing continuation is overwritten
... and also extend the documentation to explain this case explicitly. Fixes: QTBUG-107545 Pick-to: 6.5 6.2 Change-Id: I9414cc677b037989de60e97871485018e5c8a569 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/thread/qfutureinterface.cpp')
-rw-r--r--src/corelib/thread/qfutureinterface.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/corelib/thread/qfutureinterface.cpp b/src/corelib/thread/qfutureinterface.cpp
index ed46052fa7..e656527e04 100644
--- a/src/corelib/thread/qfutureinterface.cpp
+++ b/src/corelib/thread/qfutureinterface.cpp
@@ -834,6 +834,10 @@ void QFutureInterfaceBase::setContinuation(std::function<void(const QFutureInter
// store the move-only continuation, to guarantee that the associated
// future's data stays alive.
if (d->continuationState != QFutureInterfaceBasePrivate::Cleaned) {
+ if (d->continuation) {
+ qWarning() << "Adding a continuation to a future which already has a continuation. "
+ "The existing continuation is overwritten.";
+ }
d->continuation = std::move(func);
d->continuationData = continuationFutureData;
}