llvm-project/clang-tools-extra/clangd
Sam McCall bca624ab03 [clangd] Fix threading bugs in (not-yet-used) BackgroundIndex, re-enable test.
Summary:
One relatively boring bug: forgot to notify the CV after enqueue.

One much more fun bug: the thread member could access instance variables before
they were initialized. Although the thread was last in the init list, QueueCV
etc were listed after Thread in the class, so their default constructors raced
with the thread itself.
We have to get very unlucky to lose this race, I saw it 0.02% of the time.

Reviewers: ioeric

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, jfb, cfe-commits

Differential Revision: https://reviews.llvm.org/D53313

llvm-svn: 344595
2018-10-16 09:05:13 +00:00
..
benchmarks [clangd] Merge binary + YAML serialization behind a (mostly) common interface. 2018-09-25 18:06:43 +00:00
clients/clangd-vscode [clangd] Fix category in clangd-vscode's package.json 2018-07-23 14:32:12 +00:00
fuzzer [clangd] Fix fuzzer build. 2018-08-04 01:51:10 +00:00
index [clangd] Fix threading bugs in (not-yet-used) BackgroundIndex, re-enable test. 2018-10-16 09:05:13 +00:00
indexer [clangd] Make binary index format the default, remove dead flag. 2018-10-05 09:05:28 +00:00
tool [clangd] Optionally use dex for the preamble parts of the dynamic index. 2018-10-16 08:53:52 +00:00
AST.cpp [clangd] Set SymbolID for sema macros so that they can be merged with index macros. 2018-09-06 09:59:37 +00:00
AST.h [clangd] Set SymbolID for sema macros so that they can be merged with index macros. 2018-09-06 09:59:37 +00:00
CMakeLists.txt [clangd] Minimal implementation of automatic static index (not enabled). 2018-10-15 13:34:10 +00:00
Cancellation.cpp [clangd] Simplify cancellation public API 2018-09-13 11:47:48 +00:00
Cancellation.h [clangd] Simplify cancellation public API 2018-09-13 11:47:48 +00:00
ClangdLSPServer.cpp [clangd] Return Command objects from onCodeAction, rather than ad-hoc JSON. NFC 2018-10-12 16:51:48 +00:00
ClangdLSPServer.h Introduce completionItemKind capability support. 2018-09-27 17:13:07 +00:00
ClangdServer.cpp [clangd] Optionally use dex for the preamble parts of the dynamic index. 2018-10-16 08:53:52 +00:00
ClangdServer.h [clangd] Optionally use dex for the preamble parts of the dynamic index. 2018-10-16 08:53:52 +00:00
ClangdUnit.cpp [clangd] Remove no-op crash handler, we never set a crash context. 2018-10-11 13:06:10 +00:00
ClangdUnit.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
CodeComplete.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
CodeComplete.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
CodeCompletionStrings.cpp [clangd] Show function documentation in signature help 2018-08-17 09:29:38 +00:00
CodeCompletionStrings.h [clangd] Show function documentation in signature help 2018-08-17 09:29:38 +00:00
Compiler.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
Compiler.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
Context.cpp NFC: Enforce good formatting across multiple clang-tools-extra files 2018-08-14 16:03:32 +00:00
Context.h [clangd] context key constructor is constexpr. NFC 2018-06-15 12:39:21 +00:00
Diagnostics.cpp [clangd] Revert back to previous heuristic for diagnostic range extraction. 2018-10-09 08:41:12 +00:00
Diagnostics.h [clangd] send diagnostic categories only when 'categorySupport' 2018-08-22 20:30:06 +00:00
DraftStore.cpp [clangd] Support incremental document syncing 2018-03-26 14:41:40 +00:00
DraftStore.h [clangd] Support incremental document syncing 2018-03-26 14:41:40 +00:00
FS.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
FS.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
FSProvider.h Fix the qualification of `IntrusiveRefCntPtr` to use `llvm::`. 2018-10-11 08:05:10 +00:00
FileDistance.cpp [clangd] Migrate to LLVM STLExtras range API 2018-10-07 17:21:08 +00:00
FileDistance.h [clangd] NFC: Document URIDistance 2018-09-07 09:18:58 +00:00
FindSymbols.cpp [clangd] Adapt API change after 342451. 2018-09-18 08:52:14 +00:00
FindSymbols.h [clangd] Correct the namespace of ParsedAST forward declaration, NFC. 2018-08-01 12:50:44 +00:00
Function.h [clangd] Replace UniqueFunction with llvm::unique_function. 2018-07-03 20:59:33 +00:00
FuzzyMatch.cpp [clangd] FuzzyMatch exposes an API for its word segmentation. NFC 2018-07-20 08:01:37 +00:00
FuzzyMatch.h [clangd] FuzzyMatch exposes an API for its word segmentation. NFC 2018-07-20 08:01:37 +00:00
GlobalCompilationDatabase.cpp [clangd] Don't double-infer compile commands after r342228 2018-09-14 12:32:08 +00:00
GlobalCompilationDatabase.h NFC: Enforce good formatting across multiple clang-tools-extra files 2018-08-14 16:03:32 +00:00
Headers.cpp [clangd] Make IncludeInserter less slow. NFC 2018-09-27 14:27:02 +00:00
Headers.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
JSONRPCDispatcher.cpp [clangd] Allow all LSP methods to signal cancellation via $/cancelRequest 2018-09-13 12:58:36 +00:00
JSONRPCDispatcher.h [clangd] Allow all LSP methods to signal cancellation via $/cancelRequest 2018-09-13 12:58:36 +00:00
Logger.cpp [clangd] Upgrade logging facilities with levels and formatv. 2018-07-11 10:35:11 +00:00
Logger.h [clangd] Fix many typos. NFC 2018-09-01 07:47:03 +00:00
Path.h Restored r303067 and fixed failing test. 2017-05-16 09:38:59 +00:00
Protocol.cpp Introduce completionItemKind capability support. 2018-09-27 17:13:07 +00:00
Protocol.h [clangd] Return Command objects from onCodeAction, rather than ad-hoc JSON. NFC 2018-10-12 16:51:48 +00:00
ProtocolHandlers.cpp [clangd] Allow all LSP methods to signal cancellation via $/cancelRequest 2018-09-13 12:58:36 +00:00
ProtocolHandlers.h [clangd] Allow all LSP methods to signal cancellation via $/cancelRequest 2018-09-13 12:58:36 +00:00
Quality.cpp [clangd] Add "Deprecated" field to Symbol and CodeCompletion. 2018-09-06 18:52:26 +00:00
Quality.h NFC: Enforce good formatting across multiple clang-tools-extra files 2018-08-14 16:03:32 +00:00
RIFF.cpp Remove unnecessary semicolon to silence -Wpedantic warning. NFCI. 2018-09-11 13:42:15 +00:00
RIFF.h [clangd] Define a compact binary serialization fomat for symbol slab/index. 2018-09-04 16:16:50 +00:00
SourceCode.cpp [clangd] Support textEdit in addition to insertText. 2018-08-13 08:23:01 +00:00
SourceCode.h [clangd] Support textEdit in addition to insertText. 2018-08-13 08:23:01 +00:00
TUScheduler.cpp [clangd] NFC: Migrate to LLVM STLExtras API where possible 2018-10-07 14:49:41 +00:00
TUScheduler.h [clangd] Fix TUScheduler typos 2018-09-14 00:56:11 +00:00
Threading.cpp [clangd] Use 'const Twine&' instead of 'Twine'. NFC 2018-07-26 16:13:52 +00:00
Threading.h [clangd] Use 'const Twine&' instead of 'Twine'. NFC 2018-07-26 16:13:52 +00:00
Trace.cpp [clangd] Remove JSON library in favor of llvm/Support/JSON 2018-07-09 14:25:59 +00:00
Trace.h [clangd] Remove JSON library in favor of llvm/Support/JSON 2018-07-09 14:25:59 +00:00
URI.cpp [clangd] Mark colon as a safe character when percent-encoding. 2018-10-09 10:29:54 +00:00
URI.h [clangd] Implement proximity path boosting for Dex 2018-09-06 12:54:43 +00:00
XRefs.cpp [clangd] Support hover on "aut^o *". 2018-10-12 10:11:02 +00:00
XRefs.h [clangd] Implement findReferences function 2018-09-05 10:33:36 +00:00