I made the following simple code changes:
Code: Select all
int Document::recompute(const std::vector<App::DocumentObject*> &objs, bool force, bool *hasError, int options)
{
...
for (; idx < topoSortedObjects.size(); ++idx) {
auto obj = topoSortedObjects[idx];
...
if (obj->mustRecompute()) {
doRecompute = true;
++objectCount;
QList<DocumentObject*> objList;
objList << obj;
QFuture<int> ans = QtConcurrent::mapped(objList, boost::bind(&App::Document::_recomputeFeature, _1));
int res = ans.result();
//ans.waitForFinished();
/*int res = _recomputeFeature(obj);*/
...
}
...
}
...
}
But _recomputeFeature returns int.
Code: Select all
int Document::_recomputeFeature(DocumentObject* Feat)
{...}