pub struct WriteSetLocks { /* private fields */ }Expand description
Bundle of per-record locks held by a single writer’s commit
critical section. Holding the locks here (rather than scattered
MutexGuards) makes drop order deterministic — all locks release
when this struct drops, regardless of which release path
(commit / abort / panic) the writer took.
Lock acquisition is always sorted by id so any two transactions touching the same record set acquire the locks in the same order. That’s the standard prevention strategy for the simplest deadlock scenario — two writers each holding one of the other’s locks.
Implementations§
Source§impl WriteSetLocks
impl WriteSetLocks
Sourcepub fn acquire(table: &LockTable, write_set: &MutationWriteSet) -> Self
pub fn acquire(table: &LockTable, write_set: &MutationWriteSet) -> Self
Acquire write locks for every record in the write set, sorted
by id. Returns once all locks are held; the caller’s commit
runs without contention on these records until WriteSetLocks
drops.
Auto Trait Implementations§
impl Freeze for WriteSetLocks
impl RefUnwindSafe for WriteSetLocks
impl !Send for WriteSetLocks
impl Sync for WriteSetLocks
impl Unpin for WriteSetLocks
impl UnsafeUnpin for WriteSetLocks
impl UnwindSafe for WriteSetLocks
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