[yew-devel] [PATCH yew-widget-toolkit v2 1/2] store: use try_borrow and expect for better error messages
Shannon Sterz
s.sterz at proxmox.com
Tue May 6 14:44:44 CEST 2025
this commit adds more context for panics based on failed locks. this
is done by using `try_borrow()` and calling `expect()` on the result.
Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
---
src/state/store.rs | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/state/store.rs b/src/state/store.rs
index bde7d9da..67e72b77 100644
--- a/src/state/store.rs
+++ b/src/state/store.rs
@@ -130,7 +130,10 @@ impl<T: 'static> Store<T> {
/// Panics if the value is currently mutably locked.
pub fn read(&self) -> StoreReadGuard<T> {
StoreReadGuard {
- state: self.inner.borrow(),
+ state: self
+ .inner
+ .try_borrow()
+ .expect("Could not acquire read lock on store!"),
}
}
@@ -142,7 +145,11 @@ impl<T: 'static> Store<T> {
/// When the returned [StoreWriteGuard] is dropped, the store listeners
/// are notified. To prevent that use [StoreWriteGuard::skip_update]
pub fn write(&self) -> StoreWriteGuard<T> {
- let state = self.inner.borrow_mut();
+ let state = self
+ .inner
+ .try_borrow_mut()
+ .expect("Could not acquire write lock on store!");
+
StoreWriteGuard {
state,
update: true,
--
2.39.5
More information about the yew-devel
mailing list