forked from qt-creator/qt-creator
Do QFutureWatcher::setFuture() after connecting to watcher's signals
Otherwise we may have race condition. Reference: documentation for QFutureWatcher::setFuture() and the implementation of QFutureInterfaceBasePrivate::connectOutputInterface( QFutureCallOutInterface *interface). Change-Id: I5b483baaf1b844871a162f47ce7683e9ff495acb Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -381,7 +381,6 @@ void PyLSConfigureAssistant::openDocumentWithPython(const FilePath &python,
|
||||
using CheckPylsWatcher = QFutureWatcher<PythonLanguageServerState>;
|
||||
|
||||
QPointer<CheckPylsWatcher> watcher = new CheckPylsWatcher();
|
||||
watcher->setFuture(Utils::runAsync(&checkPythonLanguageServer, python));
|
||||
|
||||
// cancel and delete watcher after a 10 second timeout
|
||||
QTimer::singleShot(10000, this, [watcher]() {
|
||||
@@ -401,6 +400,7 @@ void PyLSConfigureAssistant::openDocumentWithPython(const FilePath &python,
|
||||
handlePyLSState(python, watcher->result(), document);
|
||||
watcher->deleteLater();
|
||||
});
|
||||
watcher->setFuture(Utils::runAsync(&checkPythonLanguageServer, python));
|
||||
}
|
||||
|
||||
void PyLSConfigureAssistant::handlePyLSState(const FilePath &python,
|
||||
|
||||
Reference in New Issue
Block a user