ilya-biryukov added inline comments.

================
Comment at: clangd/index/CanonicalIncludes.cpp:21
                                    llvm::StringRef CanonicalPath) {
   addRegexMapping((llvm::Twine("^") + llvm::Regex::escape(Path) + "$").str(),
                   CanonicalPath);
----------------
ilya-biryukov wrote:
> Technically, if one thread initializes `CanonicalIncludes` and the other 
> thread reads from it, this is a data race.
> Maybe we're ok with our current usage, but I don't have enough confidence in 
> that (i.e. don't know C++'s memory model good enough) and would advice to 
> take the lock in other functions of `CanonicalIncludes` too.
> 
As Sam pointed out, it's fine the way it is right now. We don't want any 
thread-safety guarantees from the non-const methods of the class.
But could you please add a comment to the class that non-const methods of it 
are not thread-safe even though it has a `mutex` inside?


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D43462



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to