From 657377311d3b041ac7b942e61ddbbe2861c494ec Mon Sep 17 00:00:00 2001 From: Mica White Date: Wed, 25 Dec 2024 11:17:35 -0500 Subject: try_lock returns a Result --- src/collection/retry.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/collection/retry.rs') diff --git a/src/collection/retry.rs b/src/collection/retry.rs index 28602f2..42d86e5 100644 --- a/src/collection/retry.rs +++ b/src/collection/retry.rs @@ -513,15 +513,19 @@ impl RetryingLockCollection { pub fn try_lock<'g, 'key: 'g, Key: Keyable + 'key>( &'g self, key: Key, - ) -> Option, Key>> { + ) -> Result, Key>, Key> { unsafe { // safety: we're taking the thread key - self.raw_try_lock().then(|| LockGuard { - // safety: we just succeeded in locking everything - guard: self.guard(), - key, - _phantom: PhantomData, - }) + if self.raw_try_lock() { + Ok(LockGuard { + // safety: we just succeeded in locking everything + guard: self.guard(), + key, + _phantom: PhantomData, + }) + } else { + Err(key) + } } } -- cgit v1.2.3