pub struct InstanceLock { /* private fields */ }Expand description
A guard that holds the singleton instance lock
The lock is automatically released when this struct is dropped. The PID file is removed on drop to allow other instances to start.
Implementations§
Source§impl InstanceLock
impl InstanceLock
Sourcepub fn acquire(pid_path: PathBuf) -> Result<Self, SingletonError>
pub fn acquire(pid_path: PathBuf) -> Result<Self, SingletonError>
Attempt to acquire the singleton lock
§Returns
Ok(InstanceLock)if the lock was successfully acquiredErr(SingletonError::AlreadyRunning(pid))if another instance is runningErr(SingletonError::*)for other errors
§Stale Lock Detection
If a PID file exists but the process is no longer running, the stale file is automatically cleaned up before acquiring the lock.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InstanceLock
impl RefUnwindSafe for InstanceLock
impl Send for InstanceLock
impl Sync for InstanceLock
impl Unpin for InstanceLock
impl UnwindSafe for InstanceLock
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
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request