pub struct Exit { /* private fields */ }Expand description
Graceful shutdown coordinator for ensuring data consistency during program exit.
On first signal, a background thread acquires the write lock (waiting only for the
current critical section to finish), runs cleanup callbacks, and exits.
On second signal, force-exits immediately via _exit(1).
Implementations§
Source§impl Exit
impl Exit
pub fn new() -> Exit
Sourcepub fn register_cleanup<F>(&self, callback: F)
pub fn register_cleanup<F>(&self, callback: F)
Registers a callback to be executed during shutdown. Callbacks are executed in registration order before the program exits.
Sourcepub fn set_ctrlc_handler(&self)
pub fn set_ctrlc_handler(&self)
Registers signal handlers and spawns a background shutdown thread.
§Panics
Panics if pipe creation or sigaction fails.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Exit
impl !RefUnwindSafe for Exit
impl Send for Exit
impl Sync for Exit
impl Unpin for Exit
impl UnsafeUnpin for Exit
impl !UnwindSafe for Exit
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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