From fb5538327390d9bc4df37032419edca39b682a3d Mon Sep 17 00:00:00 2001 From: "quanwei.zqw" Date: Wed, 10 Nov 2021 10:51:11 +0800 Subject: [PATCH] fix: read task hang when the cgroup dir removed after open Fixes #62 Signed-off-by: quanweiZhou --- src/hierarchies.rs | 2 +- src/lib.rs | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/hierarchies.rs b/src/hierarchies.rs index 0cd2e0e..54622d5 100644 --- a/src/hierarchies.rs +++ b/src/hierarchies.rs @@ -87,7 +87,7 @@ fn mountinfo_file(file: &mut File) -> Vec { } } } - Err(_) => continue, + Err(_) => break, } } r diff --git a/src/lib.rs b/src/lib.rs index 2dad3bd..7b47679 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -365,9 +365,14 @@ where .map(|file| { let bf = BufReader::new(file); let mut v = Vec::new(); - for line in bf.lines().flatten() { - let n = line.trim().parse().unwrap_or(0u64); - v.push(n); + for line in bf.lines() { + match line { + Ok(line) => { + let n = line.trim().parse().unwrap_or(0u64); + v.push(n); + } + Err(_) => break, + } } v.into_iter().map(CgroupPid::from).collect() })