Is there a "std-style" critical section mutex that is commonly used? like one that actually gives you: ```rust impl Mutex<'a, T> { fn lock(&'a self) -> Result<&'a mut T, ReentranceFailure>; } ``` ?