diff options
| author | Mica White <botahamec@gmail.com> | 2024-12-25 11:17:35 -0500 |
|---|---|---|
| committer | Mica White <botahamec@gmail.com> | 2024-12-25 11:17:35 -0500 |
| commit | 657377311d3b041ac7b942e61ddbbe2861c494ec (patch) | |
| tree | 5e041812c67e7ef0451b35d0b33ee90be28fbeaf /src/mutex/mutex.rs | |
| parent | 7e2a3aa417beb33c76fe98fbe49515c524cb0183 (diff) | |
try_lock returns a Result
Diffstat (limited to 'src/mutex/mutex.rs')
| -rw-r--r-- | src/mutex/mutex.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mutex/mutex.rs b/src/mutex/mutex.rs index 080e043..d744891 100644 --- a/src/mutex/mutex.rs +++ b/src/mutex/mutex.rs @@ -285,12 +285,15 @@ impl<T: ?Sized, R: RawMutex> Mutex<T, R> { pub fn try_lock<'s, 'a: 's, 'k: 'a, Key: Keyable>( &'s self, key: Key, - ) -> Option<MutexGuard<'s, 'k, T, Key, R>> { + ) -> Result<MutexGuard<'s, 'k, T, Key, R>, Key> { unsafe { // safety: we have the key to the mutex - self.raw_try_lock().then(|| + if self.raw_try_lock() { // safety: we just locked the mutex - MutexGuard::new(self, key)) + Ok(MutexGuard::new(self, key)) + } else { + Err(key) + } } } |
