ilya-biryukov marked 3 inline comments as done. ilya-biryukov added inline comments.
================ Comment at: clangd/ClangdServer.h:113 + /// queue. The request will be run on a separate thread. + template <class Func, class... Args> void addToFront(Func &&F, Args &&... As); + /// Add a new request to run function \p F with args \p As to the end of the ---------------- bkramer wrote: > Why the template? This is awkward now because it can only be called from > ClangdServer.cpp Storing `std::future`s with `std::async(std::launch::deferred, ...` makes things easier than storing `std::function`, as that allows to move into the caller(`std::function` must be copyable). But we want to store only properly created `std::future`s, so we create them on our own, hence the signature similar to `std::async`. I actually think that the signature itself is not that bad, but the fact that definition is only available in `.cpp` file is wrong. I've moved definintions to header. ================ Comment at: clangd/ClangdUnitStore.cpp:22 return; OpenedFiles.erase(It); } ---------------- bkramer wrote: > Not introduced in this commit, but this is equivalent to > OpenedFiles.erase(File) without the find and check. The code has changed a bit after initial submission. It returns removed element now and there seems to be no equivalent in `StringMap` for that. https://reviews.llvm.org/D36133 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits