ilya-biryukov added a comment. This is still WIP, but wanted to share anyway the progress anyway. Need to fix the FIXMEs currently added to the code and add tests.
================ Comment at: clangd/index/FileIndex.cpp:81 if (!Slab) FileToSlabs.erase(Path); else ---------------- We need to be more careful here now that we have to slabs in the list. Should only erase when both are removed. ================ Comment at: clangd/index/FileIndex.cpp:87 +void FileSymbols::updateMainFile(PathRef Path, SymbolSlab::Builder Builder) { + // FIXME(ibiryukov): most of this work should be done outside the lock. + std::lock_guard<std::mutex> Lock(Mutex); ---------------- This should definitely be done outside the lock, only the actual swap of the symbol tables should be there. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D50889 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits