Two code changes to make "clang analyze" happy (#4292)
Summary: Clang analyze is not happy in two pieces of code, with "Potential memory leak". No idea what the problem but slightly changing the code makes clang happy. Pull Request resolved: https://github.com/facebook/rocksdb/pull/4292 Differential Revision: D9413555 Pulled By: siying fbshipit-source-id: 9428c9d3664530c72129feefd135ee63d8386137
This commit is contained in:
parent
dc064f302e
commit
d5612b43de
@ -384,7 +384,7 @@ class VersionBuilder::Rep {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::atomic<size_t> next_file_meta_idx(0);
|
std::atomic<size_t> next_file_meta_idx(0);
|
||||||
std::function<void()> load_handlers_func = [&]() {
|
std::function<void()> load_handlers_func([&]() {
|
||||||
while (true) {
|
while (true) {
|
||||||
size_t file_idx = next_file_meta_idx.fetch_add(1);
|
size_t file_idx = next_file_meta_idx.fetch_add(1);
|
||||||
if (file_idx >= files_meta.size()) {
|
if (file_idx >= files_meta.size()) {
|
||||||
@ -405,7 +405,7 @@ class VersionBuilder::Rep {
|
|||||||
file_meta->table_reader_handle);
|
file_meta->table_reader_handle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
std::vector<port::Thread> threads;
|
std::vector<port::Thread> threads;
|
||||||
for (int i = 1; i < max_threads; i++) {
|
for (int i = 1; i < max_threads; i++) {
|
||||||
|
@ -258,12 +258,12 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
|
|||||||
|
|
||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
std::function<void(size_t)> adder = [&](size_t t) {
|
std::function<void(size_t)> adder([&](size_t t) {
|
||||||
for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) {
|
for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) {
|
||||||
std_bloom.AddConcurrently(
|
std_bloom.AddConcurrently(
|
||||||
Slice(reinterpret_cast<const char*>(&i), 8));
|
Slice(reinterpret_cast<const char*>(&i), 8));
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
for (size_t t = 0; t < num_threads; ++t) {
|
for (size_t t = 0; t < num_threads; ++t) {
|
||||||
threads.emplace_back(adder, t);
|
threads.emplace_back(adder, t);
|
||||||
}
|
}
|
||||||
@ -279,13 +279,13 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
|
|||||||
|
|
||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
std::function<void(size_t)> hitter = [&](size_t t) {
|
std::function<void(size_t)> hitter([&](size_t t) {
|
||||||
for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) {
|
for (uint64_t i = 1 + t; i <= num_keys; i += num_threads) {
|
||||||
bool f =
|
bool f =
|
||||||
std_bloom.MayContain(Slice(reinterpret_cast<const char*>(&i), 8));
|
std_bloom.MayContain(Slice(reinterpret_cast<const char*>(&i), 8));
|
||||||
ASSERT_TRUE(f);
|
ASSERT_TRUE(f);
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
for (size_t t = 0; t < num_threads; ++t) {
|
for (size_t t = 0; t < num_threads; ++t) {
|
||||||
threads.emplace_back(hitter, t);
|
threads.emplace_back(hitter, t);
|
||||||
}
|
}
|
||||||
@ -302,7 +302,7 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
|
|||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
std::atomic<uint32_t> false_positives(0);
|
std::atomic<uint32_t> false_positives(0);
|
||||||
std::function<void(size_t)> misser = [&](size_t t) {
|
std::function<void(size_t)> misser([&](size_t t) {
|
||||||
for (uint64_t i = num_keys + 1 + t; i <= 2 * num_keys;
|
for (uint64_t i = num_keys + 1 + t; i <= 2 * num_keys;
|
||||||
i += num_threads) {
|
i += num_threads) {
|
||||||
bool f =
|
bool f =
|
||||||
@ -311,7 +311,7 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
|
|||||||
++false_positives;
|
++false_positives;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
for (size_t t = 0; t < num_threads; ++t) {
|
for (size_t t = 0; t < num_threads; ++t) {
|
||||||
threads.emplace_back(misser, t);
|
threads.emplace_back(misser, t);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user