diff --git a/demo/rust/src/implementation/processes.rs b/demo/rust/src/implementation/processes.rs index eea2708..1e199c8 100644 --- a/demo/rust/src/implementation/processes.rs +++ b/demo/rust/src/implementation/processes.rs @@ -91,7 +91,6 @@ fn handle_tasks(processes: &mut HashMap) -> Vec { if let Some(p) = processes.get_mut(&parent) { p.tasks.push(pid); } else { - println!("no parent for {}", pid); top.push(pid); } } else { @@ -354,7 +353,12 @@ impl ProcessesTrait for Processes { } } fn parent(&self, index: usize) -> Option { - self.get(index).process.parent.map(|pid| pid as usize) + let pid = index as pid_t; + if self.p.top.contains(&pid) { + None + } else { + self.get(index).process.parent.map(|pid| pid as usize) + } } fn can_fetch_more(&self, index: Option) -> bool { if index.is_some() || !self.active {