Commit 6fc39f0c authored by Eike Ziller's avatar Eike Ziller

Locator: Fix deadlock

Updating the completion list is done in a separate thread, and for the
all and current project filters that requires a slot to be synchronously
executed on the main thread.
Triggering the update first canceled a running update and waited for
it to finish, before starting the next update. If the first update
hadn't run its code on the main thread yet, it was never be able to,
and never finished.

The patch just removes the waitForFinished after the cancel. There is no
reason to wait, since we retrieve all results only when we get the
finished signal of a non-canceled update anyhow.

Broke with 05c26767 when fixing
QTCREATORBUG-12592

Task-number: QTCREATORBUG-12875
Change-Id: Iba9d46d469e6b2c7e894963d964c2eaca4bc4d93
Reviewed-by: default avatarChristian Kandeler <christian.kandeler@digia.com>
parent e0b518b8
......@@ -483,7 +483,6 @@ void LocatorWidget::updateCompletionList(const QString &text)
// cancel the old future
m_entriesWatcher->future().cancel();
m_entriesWatcher->future().waitForFinished();
QFuture<LocatorFilterEntry> future = QtConcurrent::run(runSearch, filters, searchText);
m_entriesWatcher->setFuture(future);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment