summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
diff options
context:
space:
mode:
authorIlya Biryukov <ibiryukov@google.com>2018-09-06 11:04:56 +0000
committerIlya Biryukov <ibiryukov@google.com>2018-09-06 11:04:56 +0000
commit5c4d6e66f0caa4b6deb8d7008372efbd1c0aae49 (patch)
treea0b0ef9b4cc18df4c3f40f3145f8e73873e5ca72 /clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
parentc51d08825f568d15a2dca28d2222d5b8a1a00c9c (diff)
downloadbcm5719-llvm-5c4d6e66f0caa4b6deb8d7008372efbd1c0aae49.tar.gz
bcm5719-llvm-5c4d6e66f0caa4b6deb8d7008372efbd1c0aae49.zip
[clangd] Fix data race in async fuzzyFind tests.
llvm-svn: 341538
Diffstat (limited to 'clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp')
-rw-r--r--clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
index d2067219ce0..315050f79a8 100644
--- a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
+++ b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
@@ -966,6 +966,7 @@ public:
bool
fuzzyFind(const FuzzyFindRequest &Req,
llvm::function_ref<void(const Symbol &)> Callback) const override {
+ std::lock_guard<std::mutex> Lock(Mut);
Requests.push_back(Req);
return true;
}
@@ -981,12 +982,15 @@ public:
size_t estimateMemoryUsage() const override { return 0; }
const std::vector<FuzzyFindRequest> consumeRequests() const {
+ std::lock_guard<std::mutex> Lock(Mut);
auto Reqs = std::move(Requests);
Requests = {};
return Reqs;
}
private:
+ // We need a mutex to handle async fuzzy find requests.
+ mutable std::mutex Mut;
mutable std::vector<FuzzyFindRequest> Requests;
};
OpenPOWER on IntegriCloud