pub struct SessionLock { /* private fields */ }Expand description
RAII guard for the add/remove advisory lock.
Acquired with SessionLock::acquire; the lock file is removed when the
guard drops. Hold it for the entire mutate-the-session critical section of
cmd_add / cmd_remove.
Implementations§
Source§impl SessionLock
impl SessionLock
Sourcepub fn acquire(repo_root: &Path) -> Result<Self, PawError>
pub fn acquire(repo_root: &Path) -> Result<Self, PawError>
Attempts to acquire the advisory lock for repo_root.
Creates <repo>/.git-paw/ if needed, then atomically creates the lock
file. Returns PawError::SessionError with an actionable
“operation in progress” message when the lock is already held (the
file already exists) — the second concurrent add/remove SHALL see
this rather than proceed.
Trait Implementations§
Source§impl Debug for SessionLock
impl Debug for SessionLock
Source§impl Drop for SessionLock
impl Drop for SessionLock
Auto Trait Implementations§
impl Freeze for SessionLock
impl RefUnwindSafe for SessionLock
impl Send for SessionLock
impl Sync for SessionLock
impl Unpin for SessionLock
impl UnsafeUnpin for SessionLock
impl UnwindSafe for SessionLock
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more