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>;
8788using InvLockOrders = std::set<LockPair>;
8889
8990struct 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
9697LockData& 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)
206207static 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*
226227void 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()
257258static 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()
269270static 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
302303void 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)
321322bool 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