Skip to content

Commit 8d2f068

Browse files
committed
sync: Use StdMutex for thread safety annotations
1 parent cbc231e commit 8d2f068

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

src/sync.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <logging/timer.h>
88
#include <tinyformat.h>
99
#include <util/log.h>
10+
#include <util/stdmutex.h>
1011
#include <util/strencodings.h>
1112
#include <util/threadnames.h>
1213

@@ -87,10 +88,10 @@ using LockOrders = std::map<LockPair, LockStack>;
8788
using InvLockOrders = std::set<LockPair>;
8889

8990
struct LockData {
90-
LockStacks m_lock_stacks;
91-
LockOrders lockorders;
92-
InvLockOrders invlockorders;
93-
std::mutex dd_mutex;
91+
LockStacks m_lock_stacks GUARDED_BY(dd_mutex);
92+
LockOrders lockorders GUARDED_BY(dd_mutex);
93+
InvLockOrders invlockorders GUARDED_BY(dd_mutex);
94+
StdMutex dd_mutex;
9495
};
9596

9697
LockData& GetLockData() {
@@ -166,7 +167,7 @@ static void push_lock(MutexType* c, const CLockLocation& locklocation)
166167
std::is_base_of_v<std::recursive_mutex, MutexType>;
167168

168169
LockData& lockdata = GetLockData();
169-
std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
170+
STDLOCK(lockdata.dd_mutex);
170171

171172
LockStack& lock_stack = lockdata.m_lock_stacks[std::this_thread::get_id()];
172173
lock_stack.emplace_back(c, locklocation);
@@ -206,7 +207,7 @@ static void push_lock(MutexType* c, const CLockLocation& locklocation)
206207
static void pop_lock()
207208
{
208209
LockData& lockdata = GetLockData();
209-
std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
210+
STDLOCK(lockdata.dd_mutex);
210211

211212
LockStack& lock_stack = lockdata.m_lock_stacks[std::this_thread::get_id()];
212213
lock_stack.pop_back();
@@ -226,7 +227,7 @@ template void EnterCritical(const char*, const char*, int, std::recursive_mutex*
226227
void CheckLastCritical(void* cs, std::string& lockname, const char* guardname, const char* file, int line)
227228
{
228229
LockData& lockdata = GetLockData();
229-
std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
230+
STDLOCK(lockdata.dd_mutex);
230231

231232
const LockStack& lock_stack = lockdata.m_lock_stacks[std::this_thread::get_id()];
232233
if (!lock_stack.empty()) {
@@ -257,7 +258,7 @@ void LeaveCritical()
257258
static std::string LocksHeld()
258259
{
259260
LockData& lockdata = GetLockData();
260-
std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
261+
STDLOCK(lockdata.dd_mutex);
261262

262263
const LockStack& lock_stack = lockdata.m_lock_stacks[std::this_thread::get_id()];
263264
std::string result;
@@ -269,7 +270,7 @@ static std::string LocksHeld()
269270
static bool LockHeld(void* mutex)
270271
{
271272
LockData& lockdata = GetLockData();
272-
std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
273+
STDLOCK(lockdata.dd_mutex);
273274

274275
const LockStack& lock_stack = lockdata.m_lock_stacks[std::this_thread::get_id()];
275276
for (const LockStackItem& i : lock_stack) {
@@ -302,7 +303,7 @@ template void AssertLockNotHeldInternal(const char*, const char*, int, Recursive
302303
void DeleteLock(void* cs)
303304
{
304305
LockData& lockdata = GetLockData();
305-
std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
306+
STDLOCK(lockdata.dd_mutex);
306307
const LockPair item = std::make_pair(cs, nullptr);
307308
LockOrders::iterator it = lockdata.lockorders.lower_bound(item);
308309
while (it != lockdata.lockorders.end() && it->first.first == cs) {
@@ -321,7 +322,7 @@ void DeleteLock(void* cs)
321322
bool LockStackEmpty()
322323
{
323324
LockData& lockdata = GetLockData();
324-
std::lock_guard<std::mutex> lock(lockdata.dd_mutex);
325+
STDLOCK(lockdata.dd_mutex);
325326
const auto it = lockdata.m_lock_stacks.find(std::this_thread::get_id());
326327
if (it == lockdata.m_lock_stacks.end()) {
327328
return true;

0 commit comments

Comments
 (0)