From da27ac457f524bc96788228461e62e1ef2eaaab7 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 12 May 2021 16:55:32 +0200 Subject: 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 --- src/plugins/python/pythonutils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins/python/pythonutils.cpp') diff --git a/src/plugins/python/pythonutils.cpp b/src/plugins/python/pythonutils.cpp index 7854935ff8..309bb873f6 100644 --- a/src/plugins/python/pythonutils.cpp +++ b/src/plugins/python/pythonutils.cpp @@ -381,7 +381,6 @@ void PyLSConfigureAssistant::openDocumentWithPython(const FilePath &python, using CheckPylsWatcher = QFutureWatcher; QPointer 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, -- cgit v1.2.1