Skip to content

Commit a788789

Browse files
committed
test/checkqueue_tests: thread safety annotations
1 parent 479c584 commit a788789

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/test/checkqueue_tests.cpp

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
44

55
#include <checkqueue.h>
6+
#include <sync.h>
67
#include <test/util/setup_common.h>
78
#include <util/memory.h>
89
#include <util/system.h>
@@ -57,14 +58,14 @@ struct FailingCheck {
5758
};
5859

5960
struct UniqueCheck {
60-
static std::mutex m;
61-
static std::unordered_multiset<size_t> results;
61+
static Mutex m;
62+
static std::unordered_multiset<size_t> results GUARDED_BY(m);
6263
size_t check_id;
6364
UniqueCheck(size_t check_id_in) : check_id(check_id_in){};
6465
UniqueCheck() : check_id(0){};
6566
bool operator()()
6667
{
67-
std::lock_guard<std::mutex> l(m);
68+
LOCK(m);
6869
results.insert(check_id);
6970
return true;
7071
}
@@ -127,7 +128,7 @@ struct FrozenCleanupCheck {
127128
std::mutex FrozenCleanupCheck::m{};
128129
std::atomic<uint64_t> FrozenCleanupCheck::nFrozen{0};
129130
std::condition_variable FrozenCleanupCheck::cv{};
130-
std::mutex UniqueCheck::m;
131+
Mutex UniqueCheck::m;
131132
std::unordered_multiset<size_t> UniqueCheck::results;
132133
std::atomic<size_t> FakeCheckCheckCompletion::n_calls{0};
133134
std::atomic<size_t> MemoryCheck::fake_allocated_memory{0};
@@ -290,11 +291,15 @@ BOOST_AUTO_TEST_CASE(test_CheckQueue_UniqueCheck)
290291
control.Add(vChecks);
291292
}
292293
}
293-
bool r = true;
294-
BOOST_REQUIRE_EQUAL(UniqueCheck::results.size(), COUNT);
295-
for (size_t i = 0; i < COUNT; ++i)
296-
r = r && UniqueCheck::results.count(i) == 1;
297-
BOOST_REQUIRE(r);
294+
{
295+
LOCK(UniqueCheck::m);
296+
bool r = true;
297+
BOOST_REQUIRE_EQUAL(UniqueCheck::results.size(), COUNT);
298+
for (size_t i = 0; i < COUNT; ++i) {
299+
r = r && UniqueCheck::results.count(i) == 1;
300+
}
301+
BOOST_REQUIRE(r);
302+
}
298303
tg.interrupt_all();
299304
tg.join_all();
300305
}

0 commit comments

Comments
 (0)