pub(crate) struct Reaper {
pub(crate) sys: Reaper,
pub(crate) drivers: AtomicUsize,
pub(crate) child_count: AtomicUsize,
}Expand description
The zombie process reaper.
This structure reaps zombie processes and emits the SIGCHLD signal.
Fields§
§sys: ReaperUnderlying system reaper.
drivers: AtomicUsizeThe number of tasks polling the SIGCHLD event.
If this is zero, the async-process thread must be spawned.
child_count: AtomicUsizeNumber of live Child instances currently running.
This is used to prevent the reaper thread from being spawned right as the program closes, when the reaper thread isn’t needed. This represents the number of active processes.
Implementations§
Source§impl Reaper
impl Reaper
Sourcepub(crate) fn ensure_driven(&'static self)
pub(crate) fn ensure_driven(&'static self)
Ensure that the reaper is driven.
If there are no active driver() callers, this will spawn the async-process thread.
Sourcepub(crate) fn start_driver_thread(&'static self)
pub(crate) fn start_driver_thread(&'static self)
Start the async-process thread.
Sourcepub(crate) fn register(&'static self, child: Child) -> Result<ChildGuard>
pub(crate) fn register(&'static self, child: Child) -> Result<ChildGuard>
Register a process with this reaper.
Auto Trait Implementations§
impl !Freeze for Reaper
impl !RefUnwindSafe for Reaper
impl Send for Reaper
impl Sync for Reaper
impl !Unpin for Reaper
impl UnwindSafe for Reaper
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