Author: kadir çetinkaya Date: 2024-04-18T17:05:05+02:00 New Revision: acd736e3e1e7b8a20e28ed17fb59595ce1e670bb
URL: https://github.com/llvm/llvm-project/commit/acd736e3e1e7b8a20e28ed17fb59595ce1e670bb DIFF: https://github.com/llvm/llvm-project/commit/acd736e3e1e7b8a20e28ed17fb59595ce1e670bb.diff LOG: [clangd] Propagate context into stdlib indexing thread (#87611) Some FS implementations rely on snapshots available in the context. Added: Modified: clang-tools-extra/clangd/ClangdServer.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/ClangdServer.cpp b/clang-tools-extra/clangd/ClangdServer.cpp index 5790273d625ef1..1c4c2a79b5c051 100644 --- a/clang-tools-extra/clangd/ClangdServer.cpp +++ b/clang-tools-extra/clangd/ClangdServer.cpp @@ -30,6 +30,7 @@ #include "refactor/Rename.h" #include "refactor/Tweak.h" #include "support/Cancellation.h" +#include "support/Context.h" #include "support/Logger.h" #include "support/MemoryTree.h" #include "support/ThreadsafeFS.h" @@ -112,7 +113,12 @@ struct UpdateIndexCallbacks : public ParsingCallbacks { // Index outlives TUScheduler (declared first) FIndex(FIndex), // shared_ptr extends lifetime - Stdlib(Stdlib)]() mutable { + Stdlib(Stdlib), + // We have some FS implementations that rely on information in + // the context. + Ctx(Context::current().clone())]() mutable { + // Make sure we install the context into current thread. + WithContext C(std::move(Ctx)); clang::noteBottomOfStack(); IndexFileIn IF; IF.Symbols = indexStandardLibrary(std::move(CI), Loc, *TFS); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits