pub struct SnapshotBarrier { /* private fields */ }Expand description
Per-runtime barrier that keeps snapshot capture from splitting a VM update from the projection batch it produced.
Generated mutation producers enter the barrier in shared mode before
touching the VM and transfer the guard to their MutationBatch. The
projector releases it only after applying that batch. Snapshot capture
enters in exclusive mode, which therefore waits for both in-flight parser
work and queued projection work to finish.
Implementations§
Source§impl SnapshotBarrier
impl SnapshotBarrier
pub async fn enter_processing(&self) -> SnapshotProcessingGuard
Trait Implementations§
Source§impl Clone for SnapshotBarrier
impl Clone for SnapshotBarrier
Auto Trait Implementations§
impl !RefUnwindSafe for SnapshotBarrier
impl !UnwindSafe for SnapshotBarrier
impl Freeze for SnapshotBarrier
impl Send for SnapshotBarrier
impl Sync for SnapshotBarrier
impl Unpin for SnapshotBarrier
impl UnsafeUnpin for SnapshotBarrier
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more