Locking: Add basic reactive deadlock detection foundation

We added a timestamp to each Lockvoker so that we can detect when
a lockvoker has been in a qutex for "too long", where "too long"
is defined arbitrarily as 500ms.

Next we're going to change the way we create callbacks to enable
us to more explicitly access the sh_ptr<AsyncContin> via
the callback object.
This commit is contained in:
2025-09-22 20:45:36 -04:00
parent d2ed525106
commit 092a0954a0
5 changed files with 53 additions and 31 deletions
+3 -2
View File
@@ -12,8 +12,9 @@
/* World thread configuration */
#cmakedefine WORLD_USE_BODY_THREAD
/* Qutex deadlock detection configuration */
#define DEBUG_CONFIG_QUTEX_DEADLOCK_TIMEOUT_MS @DEBUG_CONFIG_QUTEX_DEADLOCK_TIMEOUT_MS@
/* Debug locking configuration */
#cmakedefine CONFIG_ENABLE_DEBUG_LOCKS
#cmakedefine CONFIG_DEBUG_QUTEX_DEADLOCK_TIMEOUT_MS @DEBUG_QUTEX_DEADLOCK_TIMEOUT_MS@
/* Cross-compilation configuration */
#cmakedefine CMAKE_CROSSCOMPILING