pub struct ZombiePtracees { /* private fields */ }Expand description
A list of zombie processes that were traced by a given tracer, but which have not yet notified that tracer of their exit. Once the tracer is notified, the original parent will be notified.
Implementations§
Source§impl ZombiePtracees
impl ZombiePtracees
pub fn new() -> Self
Sourcepub fn add(&mut self, pids: &mut PidTable, tid: tid_t, zombie: ZombieProcess)
pub fn add(&mut self, pids: &mut PidTable, tid: tid_t, zombie: ZombieProcess)
Adds a zombie tracee to the list, but does not provide a parent task to notify when the tracer is done.
Sourcepub fn remove(&mut self, pids: &mut PidTable, tid: tid_t)
pub fn remove(&mut self, pids: &mut PidTable, tid: tid_t)
Delete any zombie ptracees for the given tid.
pub fn is_empty(&self) -> bool
Sourcepub fn set_parent_of(
&mut self,
tracee: tid_t,
new_zombie: Option<OwnedRef<ZombieProcess>>,
new_parent: &ThreadGroup,
)
pub fn set_parent_of( &mut self, tracee: tid_t, new_zombie: Option<OwnedRef<ZombieProcess>>, new_parent: &ThreadGroup, )
Provide a parent task and a zombie to notify when the tracer has been notified.
Sourcepub fn reparent(old_parent: &ThreadGroup, new_parent: &ThreadGroup)
pub fn reparent(old_parent: &ThreadGroup, new_parent: &ThreadGroup)
When a parent dies without having been notified, replace it with a given new parent.
Sourcepub fn release(&mut self, pids: &mut PidTable)
pub fn release(&mut self, pids: &mut PidTable)
Empty the table and notify all of the remaining parents. Used if the tracer terminates or detaches without acknowledging all pending tracees.
Sourcepub fn has_zombie_matching(&self, selector: &ProcessSelector) -> bool
pub fn has_zombie_matching(&self, selector: &ProcessSelector) -> bool
Returns true iff there is a zombie waiting to be delivered to the tracers matching the given selector.
Sourcepub fn has_tracee(&self, tid: tid_t) -> bool
pub fn has_tracee(&self, tid: tid_t) -> bool
Returns true iff the given tid is a traced thread that needs to deliver a zombie to the
tracer.
Sourcepub fn get_waitable_entry(
&mut self,
selector: &ProcessSelector,
options: &WaitingOptions,
) -> Option<(ZombieProcess, Option<(Weak<ThreadGroup>, OwnedRef<ZombieProcess>)>)>
pub fn get_waitable_entry( &mut self, selector: &ProcessSelector, options: &WaitingOptions, ) -> Option<(ZombieProcess, Option<(Weak<ThreadGroup>, OwnedRef<ZombieProcess>)>)>
Returns a zombie matching the given selector and options, and (optionally) a thread group to notify after the caller has consumed that zombie.
Trait Implementations§
Source§impl Default for ZombiePtracees
impl Default for ZombiePtracees
Source§fn default() -> ZombiePtracees
fn default() -> ZombiePtracees
Auto Trait Implementations§
impl Freeze for ZombiePtracees
impl !RefUnwindSafe for ZombiePtracees
impl Send for ZombiePtracees
impl Sync for ZombiePtracees
impl Unpin for ZombiePtracees
impl !UnwindSafe for ZombiePtracees
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, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [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