diff options
author | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-11-03 15:29:39 +0200 |
---|---|---|
committer | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-11-03 15:29:39 +0200 |
commit | 13e7ee8afd3f7191cd1a157081d11a7c4ef15c65 (patch) | |
tree | d99628a199c5f1133f2b9acbb42ffc8727f89e81 | |
parent | fb8666980f6f350e7bbc97c0bf74391391916a52 (diff) |
Fix incorrect available RAM amount shown
Fixes #18
-rw-r--r-- | src/components/kernel.rs | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/src/components/kernel.rs b/src/components/kernel.rs index 21748d9..feeae6a 100644 --- a/src/components/kernel.rs +++ b/src/components/kernel.rs @@ -523,27 +523,23 @@ fn get_mem_info() -> (usize, usize) { let mut file = File::open("/proc/meminfo").unwrap(); let mut res = String::with_capacity(2048); file.read_to_string(&mut res).unwrap(); - let mut lines_iter = res.lines(); - let mem_total = usize::from_str( - lines_iter - .next() - .unwrap() - .split_whitespace() - .skip(1) - .next() - .unwrap(), - ) - .unwrap(); - let mem_available = usize::from_str( - lines_iter - .next() - .unwrap() - .split_whitespace() - .skip(1) - .next() - .unwrap(), - ) - .unwrap(); + let mut mem_total = 0; + let mut mem_available = 0; + let mut counter = 0; + for line in res.lines() { + if line.starts_with("MemTotal") { + mem_total = usize::from_str(line.split_whitespace().skip(1).next().unwrap()).unwrap(); + counter += 1; + } else if line.starts_with("MemAvailable") { + mem_available = + usize::from_str(line.split_whitespace().skip(1).next().unwrap()).unwrap(); + counter += 1; + } + + if counter == 2 { + break; + } + } (mem_available, mem_total) } |