QmlProfiler: Avoid QtConcurrent

QtConcurrent runs everything on a global thread pool, which means that
calls of QtConcurrent::run/map/etc can block each other.

Change-Id: Ia7a61b5ae1e0919113205a83a43caa1f27015732
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
This commit is contained in:
Eike Ziller
2016-02-02 10:23:00 +01:00
parent d4816850f0
commit e307b7eecf

View File

@@ -338,7 +338,7 @@ void QmlProfilerModelManager::save(const QString &filename)
d->notesModel->saveData();
QFuture<void> result = QtConcurrent::run<void>([this, file] (QFutureInterface<void> &future) {
QFuture<void> result = Utils::runAsync<void>([this, file] (QFutureInterface<void> &future) {
QmlProfilerFileWriter writer;
writer.setTraceTime(traceTime()->startTime(), traceTime()->endTime(),
traceTime()->duration());
@@ -367,7 +367,7 @@ void QmlProfilerModelManager::load(const QString &filename)
clear();
setState(AcquiringData);
QFuture<void> result = QtConcurrent::run<void>([this, file] (QFutureInterface<void> &future) {
QFuture<void> result = Utils::runAsync<void>([this, file] (QFutureInterface<void> &future) {
QmlProfilerFileReader reader;
reader.setFuture(&future);
connect(&reader, &QmlProfilerFileReader::error, this, &QmlProfilerModelManager::error);