From de4eef52d123b781b833841a9765d1788010ac6b Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 17 Jun 2025 17:49:21 +0000 Subject: [PATCH] threading: use correct mutex name in reverse_lock fatal error messages Now that REVERSE_LOCK requires the name of the actual mutex, it can be used for better error messages. --- src/sync.h | 2 +- src/test/reverselock_tests.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sync.h b/src/sync.h index 06c88365620..00e0cd188d3 100644 --- a/src/sync.h +++ b/src/sync.h @@ -248,7 +248,7 @@ public: // it is not possible to use the lock's copy of the mutex for that purpose. // Instead, the original mutex needs to be passed back to the reverse_lock for // the sake of thread-safety analysis, but it is not actually used otherwise. -#define REVERSE_LOCK(g, cs) typename std::decay::type::reverse_lock UNIQUE_NAME(revlock)(g, cs, #g, __FILE__, __LINE__) +#define REVERSE_LOCK(g, cs) typename std::decay::type::reverse_lock UNIQUE_NAME(revlock)(g, cs, #cs, __FILE__, __LINE__) // When locking a Mutex, require negative capability to ensure the lock // is not already held diff --git a/src/test/reverselock_tests.cpp b/src/test/reverselock_tests.cpp index b308306bf3a..64b3ddf2cd7 100644 --- a/src/test/reverselock_tests.cpp +++ b/src/test/reverselock_tests.cpp @@ -54,7 +54,7 @@ BOOST_AUTO_TEST_CASE(reverselock_errors) g_debug_lockorder_abort = false; // Make sure trying to reverse lock a previous lock fails - BOOST_CHECK_EXCEPTION(REVERSE_LOCK(lock2, mutex2), std::logic_error, HasReason("lock2 was not most recent critical section locked")); + BOOST_CHECK_EXCEPTION(REVERSE_LOCK(lock2, mutex2), std::logic_error, HasReason("mutex2 was not most recent critical section locked")); BOOST_CHECK(lock2.owns_lock()); g_debug_lockorder_abort = prev;