From 26595f1624563770e8d9f8a516cd8f74b4c0407d Mon Sep 17 00:00:00 2001 From: Red Bear OS Date: Thu, 2 Jul 2026 21:40:50 +0300 Subject: [PATCH] Tier 2: robust mutex cleanup in thread exit path exit_current_thread() now calls mark_robust_mutexes_dead(this) before thread teardown, ensuring robust mutexes held by exiting threads are properly marked as dead and ownership transferred to waiters. --- src/pthread/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pthread/mod.rs b/src/pthread/mod.rs index 6b67d63358..24959e1cf4 100644 --- a/src/pthread/mod.rs +++ b/src/pthread/mod.rs @@ -317,6 +317,9 @@ pub unsafe fn exit_current_thread(retval: Retval) -> ! { unsafe { header::tls::run_all_destructors() }; let this = current_thread().expect("failed to obtain current thread when exiting"); + + crate::sync::pthread_mutex::mark_robust_mutexes_dead(this); + let stack_base = this.stack_base; let stack_size = this.stack_size;