summaryrefslogtreecommitdiffstats
path: root/src/gui/opengl/qopenglversionfunctions.cpp
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2025-10-17 15:34:56 +0200
committerIvan Solovev <ivan.solovev@qt.io>2025-12-11 20:09:42 +0000
commitef399385253c93b3fbe81251ef71aa47de4ad016 (patch)
tree5f7a9c4f1a002f3f22c27783522f6825a1b80b07 /src/gui/opengl/qopenglversionfunctions.cpp
parent40d80af504d7ff62d112079454c5ef53455b1475 (diff)
QFuture::cancelChain(): improve propagation through unwrap()
QFuture::unwrap() returns a new QFuture that is not added to the continuation chain, but potentially fulfilled by both outer and nested futures. As a result, the parent-child relation in the continuation chain is broken, and a cancelChain() call will not be propagated up the chain through unwrap(). Fix it by explicitly adding the newly-created QFutureInterface into the hierarchy. This requires using some private API of QFutureInterfaceBase, so add UnwrapHandler as a friend class. There is still one more pending issue with the cancellation propagation: if at the time of cancellation the outer future is already finised and the nested is in progress, the cancellation will not be propagated into it, and so it will finish successfully. This issue should be addressed separately. Task-number: QTBUG-140786 Pick-to: 6.11 6.10 Change-Id: I62a4038f4544fff3cca65cb817940ae8b48db384 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/gui/opengl/qopenglversionfunctions.cpp')
0 files changed, 0 insertions, 0 deletions