Skip to content
This repository was archived by the owner on Dec 12, 2023. It is now read-only.

Commit fa6b47c

Browse files
committed
Bug Fix: CombinedFuture is destroyed before all pending future finished
1 parent ff70c80 commit fa6b47c

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

asyncfuture.h

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -358,13 +358,10 @@ class CombinedFuture: public DeferredFuture<void> {
358358
static QSharedPointer<CombinedFuture> create(bool settleAllMode) {
359359

360360
auto deleter = [](CombinedFuture *object) {
361-
if (object->resolved) {
362-
// If that is already resolved, it is not necessary to keep it in memory
363-
object->deleteLater();
364-
} else {
365-
object->autoDelete = true;
366-
object->decRefCount();
367-
}
361+
// Regardless of the no. of instance of QSharedPointer<CombinedFuture>,
362+
// it only increase the reference by one.
363+
object->autoDelete = true;
364+
object->decRefCount();
368365
};
369366

370367
QSharedPointer<CombinedFuture> ptr(new CombinedFuture(settleAllMode), deleter);

0 commit comments

Comments
 (0)