From 54dbe6d074e53215e88ffab51583864cc805fd9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Krzywa=C5=BCnia?= <1815898+ribelo@users.noreply.github.com> Date: Thu, 30 May 2024 14:05:20 +0200 Subject: [PATCH] Use RwLock::read in SyncStorage (#2463) Replaces `RwLock::try_read` with `RwLock::read` in `SyncStorage`. This change prioritizes potential deadlocks over panics, as unwrapping a failed `try_read` is deemed less desirable. --- packages/generational-box/src/sync.rs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/generational-box/src/sync.rs b/packages/generational-box/src/sync.rs index fbc5f820c..7c0031f40 100644 --- a/packages/generational-box/src/sync.rs +++ b/packages/generational-box/src/sync.rs @@ -112,15 +112,7 @@ impl Storage for SyncStorage { #[cfg(any(debug_assertions, feature = "debug_ownership"))] at: crate::GenerationalRefBorrowInfo, ) -> Result, error::BorrowError> { - let read = self.0.try_read(); - - #[cfg(any(debug_assertions, feature = "debug_ownership"))] - let read = read.ok_or_else(|| at.borrowed_from.borrow_error())?; - - #[cfg(not(any(debug_assertions, feature = "debug_ownership")))] - let read = read.ok_or_else(|| { - error::BorrowError::AlreadyBorrowedMut(error::AlreadyBorrowedMutError {}) - })?; + let read = self.0.read(); RwLockReadGuard::try_map(read, |any| any.as_ref()?.downcast_ref()) .map_err(|_| {