pub struct SeqlockReadGuard<'a, T: ?Sized + 'a> { /* private fields */ }Expand description
顺序锁共享读临界区的守卫
共享读临界区的守卫只提供解引用到只读引用。
Implementations§
Source§impl<'a, T: ?Sized> SeqlockReadGuard<'a, T>
impl<'a, T: ?Sized> SeqlockReadGuard<'a, T>
Sourcepub fn read_retry(&self) -> bool
pub fn read_retry(&self) -> bool
关闭共享读临界区,并检查是否需要重试
- 当顺序锁的顺序值没有发生变化,返回 [
false] ; - 当顺序锁的顺序值发生了变化,返回 [
true] 。
§示例
loop {
let guard = sqlk.read_begin();
let val = *guard;
if !guard.read_retry() {
break;
}
}Trait Implementations§
impl<T: ?Sized> !Send for SeqlockReadGuard<'_, T>
Source§impl<T: ?Sized> Deref for SeqlockReadGuard<'_, T>
impl<T: ?Sized> Deref for SeqlockReadGuard<'_, T>
impl<T: ?Sized + Sync> Sync for SeqlockReadGuard<'_, T>
Auto Trait Implementations§
impl<'a, T> !RefUnwindSafe for SeqlockReadGuard<'a, T>
impl<'a, T> !UnwindSafe for SeqlockReadGuard<'a, T>
impl<'a, T> Freeze for SeqlockReadGuard<'a, T>where
T: ?Sized,
impl<'a, T> Unpin for SeqlockReadGuard<'a, T>where
T: ?Sized,
impl<'a, T> UnsafeUnpin for SeqlockReadGuard<'a, T>where
T: ?Sized,
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more