From 8d0ba1cd3cabecb621f66d49e37351fd90595c35 Mon Sep 17 00:00:00 2001 From: Zhengchao An Date: Sun, 28 Jun 2026 19:29:50 +0800 Subject: [PATCH] docs: document deadlock detector mutex design rationale (#744) (#4008) docs: document deadlock detector mutex design rationale Add comment explaining why std::sync::Mutex is used instead of tokio::sync::Mutex in the deadlock detector. Refs #744 Co-authored-by: houseme --- crates/io-core/src/deadlock_detector.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/io-core/src/deadlock_detector.rs b/crates/io-core/src/deadlock_detector.rs index 778220e09..8023a2151 100644 --- a/crates/io-core/src/deadlock_detector.rs +++ b/crates/io-core/src/deadlock_detector.rs @@ -117,6 +117,12 @@ impl Default for DeadlockDetectorConfig { } /// Deadlock detector. +/// Deadlock detector using wait-for graphs. +/// +/// Uses `std::sync::Mutex` (not `tokio::sync::Mutex`) because: +/// - Locks are never held across `.await` points +/// - Critical sections are sub-microsecond (single HashMap operations) +/// - `tokio::sync::Mutex` would add unnecessary overhead for these short operations pub struct DeadlockDetector { /// Configuration. config: DeadlockDetectorConfig,