Prechádzať zdrojové kódy

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.
Rafał Krzyważnia 1 rok pred
rodič
commit
54dbe6d074
1 zmenil súbory, kde vykonal 1 pridanie a 9 odobranie
  1. 1 9
      packages/generational-box/src/sync.rs

+ 1 - 9
packages/generational-box/src/sync.rs

@@ -112,15 +112,7 @@ impl<T: Sync + Send + 'static> Storage<T> for SyncStorage {
         #[cfg(any(debug_assertions, feature = "debug_ownership"))]
         #[cfg(any(debug_assertions, feature = "debug_ownership"))]
         at: crate::GenerationalRefBorrowInfo,
         at: crate::GenerationalRefBorrowInfo,
     ) -> Result<Self::Ref<'static, T>, error::BorrowError> {
     ) -> Result<Self::Ref<'static, T>, 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())
         RwLockReadGuard::try_map(read, |any| any.as_ref()?.downcast_ref())
             .map_err(|_| {
             .map_err(|_| {