pub trait RwLockExt<T> {
// Required methods
fn read_or_panic(&self) -> RwLockReadGuard<'_, T>;
fn write_or_panic(&self) -> RwLockWriteGuard<'_, T>;
}Expand description
Extension trait for RwLock to provide methods that acquire read/write locks, panicking if
the lock is poisoned.
Mirrors MutexExt for RwLock so callers avoid #[allow(clippy::unwrap_used)] at each
lock site.
§Examples
use libdd_common::RwLockExt;
use std::sync::{Arc, RwLock};
let data = Arc::new(RwLock::new(5));
let data_clone = Arc::clone(&data);
std::thread::spawn(move || {
let mut num = data_clone.write_or_panic();
*num += 1;
})
.join()
.expect("Thread panicked");
assert_eq!(*data.read_or_panic(), 6);Required Methods§
fn read_or_panic(&self) -> RwLockReadGuard<'_, T>
fn write_or_panic(&self) -> RwLockWriteGuard<'_, T>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".