TaskTree: Introduce For element

Improve code readability by requiring iteratable Group
to be named For.

The For's c'tor requires an iterator element as a first arg.

The For's c'tor allows for passing exactly one iterator element.

It's not possible to place iterators inside Group element anymore.

Change-Id: I9dfe2c0da058abac161f66c4e336da2417c383f1
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2024-07-09 21:36:17 +02:00
parent c841a99db9
commit 779390829c
19 changed files with 110 additions and 76 deletions

View File

@@ -417,14 +417,14 @@ void TestCodeParser::scanForTests(const QSet<FilePath> &filePaths,
if (!results.isEmpty())
emit testParseResultsReady(results);
};
const Group root {
const For recipe {
LoopRepeat(filteredFiles.size()),
parallelLimit(limit),
storage,
onGroupSetup([storage, filteredFiles] { *storage = filteredFiles.cbegin(); }),
LoopRepeat(filteredFiles.size()),
AsyncTask<TestParseResultPtr>(onSetup, onDone, CallDoneIf::Success)
};
m_taskTreeRunner.start(root);
m_taskTreeRunner.start(recipe);
}
void TestCodeParser::onTaskStarted(Id type)