pub enum ReapMode {
SigIgn,
Waitpid,
}Expand description
How a WorkType::CgroupAttachStorm
worker reaps the transient children it forks each iteration.
Carried as a typed enum rather than a bool so call sites name the
choice explicitly (SigIgn / Waitpid) instead of a bare
reap: true / false, and so the failure-dump diagnostic names it.
The serde wire form is snake_case ("sig_ign" / "waitpid").
Variants§
SigIgn
Install SIGCHLD = SIG_IGN once at worker entry so each forked
child auto-reaps in its own exit path, concurrent with the
parent’s cgroup.procs write. This reap-vs-write race is the
variant’s reason to exist, so it is the default.
Waitpid
The parent blocking-waitpids each child after writing its pid —
the non-racing control shape (mirrors the reaper in
WorkType::ForkExit), so
the same primitive serves as an A/B baseline against the SigIgn
race.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ReapMode
impl<'de> Deserialize<'de> for ReapMode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Copy for ReapMode
impl Eq for ReapMode
impl StructuralPartialEq for ReapMode
Auto Trait Implementations§
impl Freeze for ReapMode
impl RefUnwindSafe for ReapMode
impl Send for ReapMode
impl Sync for ReapMode
impl Unpin for ReapMode
impl UnwindSafe for ReapMode
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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