[PATCH] D51438: [clangd] Run SignatureHelp using an up-to-date preamble, waiting if needed.

Yvan Roux via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 18 10:31:50 PDT 2018


Hi Sam,

It took a very long time to identify it, but this commit broke ARMv7
bots, where this test hangs.  Logs are available here (initial ones
are too old):

http://lab.llvm.org:8011/builders/clang-cmake-armv7-quick/builds/3685/steps/ninja%20check%201/logs/stdiohttp://lab.llvm.org:8011/builders/clang-cmake-armv7-quick/builds/3685/steps/ninja%20check%201/logs/stdio

Thanks,
YvanOn Thu, 30 Aug 2018 at 17:15, Sam McCall via Phabricator via
cfe-commits <cfe-commits at lists.llvm.org> wrote:
>
> sammccall added inline comments.
>
>
> ================
> Comment at: clangd/TUScheduler.cpp:474
> +    llvm::unique_function<void(std::shared_ptr<const PreambleData>)> Callback) {
> +  if (RunSync)
> +    return Callback(getPossiblyStalePreamble());
> ----------------
> ilya-biryukov wrote:
> > It seems we could remove the special-casing of `RunSync` and still get correct results (the Requests queue is always empty).
> > But feel free to keep it for clarity.
> Right, of course :-)
> Replaced this with an assert before we write to the queue.
>
>
> ================
> Comment at: clangd/TUScheduler.h:123
> +  /// Controls whether preamble reads wait for the preamble to be up-to-date.
> +  enum PreambleConsistency {
> +    /// The preamble is generated from the current version of the file.
> ----------------
> ilya-biryukov wrote:
> > Maybe use a strongly-typed enum outside the class?
> > `TUScheduler::Stale` will turn into `PreambleConsistency::Stale` at the call-site. The main upside is that it does not pollute completions inside the class with enumerators.
> >
> > Just a suggestion, feel free to ignore.
> Yeah, the downside to that is that it *does* pollute the clangd:: namespace. So both are a bit sad.
>
> This header is fairly widely visible (since it's included by clangdserver) and this API is fairly narrowly interesting, so as far as completion goes I think I prefer it being hidden in TUScheduler.
>
>
> Repository:
>   rL LLVM
>
> https://reviews.llvm.org/D51438
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the llvm-commits mailing list