diff --git a/clang-tools-extra/clangd/TUScheduler.cpp b/clang-tools-extra/clangd/TUScheduler.cpp index 69dec9b677fbf..9218ae9a03ce2 100644 --- a/clang-tools-extra/clangd/TUScheduler.cpp +++ b/clang-tools-extra/clangd/TUScheduler.cpp @@ -929,8 +929,9 @@ void TUScheduler::run(llvm::StringRef Name, llvm::unique_function Action) { if (!PreambleTasks) return Action(); - PreambleTasks->runAsync(Name, [Ctx = Context::current().clone(), + PreambleTasks->runAsync(Name, [this, Ctx = Context::current().clone(), Action = std::move(Action)]() mutable { + std::lock_guard BarrierLock(Barrier); WithContext WC(std::move(Ctx)); Action(); });