From e42bb5e35a88c6a163934080883d4c5bc1f32cfc Mon Sep 17 00:00:00 2001 From: Sam McCall Date: Fri, 2 Jul 2021 16:30:19 +0200 Subject: [PATCH] Reapply [clangd] Fix possible assertion fail in TUScheduler This reverts commit fff966b6855aee6fc0d0d4cd401cdd525a838572. Seems I managed to delete a critical ! after running the tests :-\ --- clang-tools-extra/clangd/TUScheduler.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/clang-tools-extra/clangd/TUScheduler.cpp b/clang-tools-extra/clangd/TUScheduler.cpp index 09c68a3a250b..700d8264555f 100644 --- a/clang-tools-extra/clangd/TUScheduler.cpp +++ b/clang-tools-extra/clangd/TUScheduler.cpp @@ -1380,11 +1380,13 @@ bool ASTWorker::blockUntilIdle(Deadline Timeout) const { }; // Make sure ASTWorker has processed all requests, which might issue new // updates to PreamblePeer. - WaitUntilASTWorkerIsIdle(); + if (!WaitUntilASTWorkerIsIdle()) + return false; // Now that ASTWorker processed all requests, ensure PreamblePeer has served // all update requests. This might create new PreambleRequests for the // ASTWorker. - PreamblePeer.blockUntilIdle(Timeout); + if (!PreamblePeer.blockUntilIdle(Timeout)) + return false; assert(Requests.empty() && "No new normal tasks can be scheduled concurrently with " "blockUntilIdle(): ASTWorker isn't threadsafe");