sammccall added a comment.

In https://reviews.llvm.org/D51996#1232459, @kadircet wrote:

> Seems a lot cleaner now, thanks!
>
> Do you plan to have other changes like moving control to JSONRPCDispatcher 
> and recording timings for analysis on this patch?


https://reviews.llvm.org/D52004 is the JSONRPCDispatcher change.
Added a FIXME to the file comment about timings, hope to get to it soon.

> If not maybe we can add some fixme's so that we won't forget. Also the 
> somewhat "caching" of cancellation token from previous implementation might 
> still be useful in future if we really face "crowded" contexts and frequent 
> cancellation checks, so maybe keep some notes about it?

I think the best plan for frequent cancellation checks is "don't do that" ;-) 
The situation is that you're checking for cancellation to save CPU, but the 
thing you're spending the CPU on is checking for cancellation...  I don't think 
the fix is to make cancellation checking cheaper! (Obviously cheaper is always 
better, but it would make the API worse here)
So i left a note on isCancelled(). We can revisit if we find cases where 
context traversal is really hurting us.



================
Comment at: clangd/Cancellation.h:29
+// 2. Library code that executes long-running work, and can exit early if the
+//   result is not needed.
 //
----------------
kadircet wrote:
> Maybe also mention propagating context into long-running work. runAsync does 
> that implicitly and not sure if there will be other use cases that doesn't 
> include it, but if there might be it would be nice to point it out as well.
Yeah, added this to the caveats.
This shouldn't be a problem in practice (at least for pure open-source clangd): 
LLVM doesn't have a lot of multithreading utilities so we mostly define our 
own, and those are context aware.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D51996



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

Reply via email to