aboutsummaryrefslogtreecommitdiff
path: root/src/utils/load_average.rs
diff options
context:
space:
mode:
authorMustafa Salih <37256744+MustafaSalih1993@users.noreply.github.com>2021-05-12 16:46:48 +0300
committerGitHub <noreply@github.com>2021-05-12 16:46:48 +0300
commitb1d81bf8c936509b6f83b2eac98da8ae72e0a4e3 (patch)
tree50106d4dfd76ff20ae57d22be922bc5dc5983c9e /src/utils/load_average.rs
parent674f6811fe43dd0949052e225bf4c91a63de323e (diff)
getting data programmatically (#56)
* getting loadavg programmatically * added missing uptime in rsblock.yml * using clock_gettime syscall to get uptime
Diffstat (limited to 'src/utils/load_average.rs')
-rw-r--r--src/utils/load_average.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/utils/load_average.rs b/src/utils/load_average.rs
index 414ab6f..43dc88b 100644
--- a/src/utils/load_average.rs
+++ b/src/utils/load_average.rs
@@ -1,12 +1,16 @@
use crate::config::CONFIG;
use crate::types::ThreadsData;
-use nix::sys::sysinfo;
+
+use nix::libc::{c_double, c_int, getloadavg};
pub fn get_load_avg() -> ThreadsData {
- let load = sysinfo::sysinfo().unwrap().load_average().0;
+ let mut data: [c_double; 3] = [0f64; 3];
+ unsafe { getloadavg(data.as_mut_ptr(), data.len() as c_int) };
+ let [load, _, _] = data;
let data = format!(
" {} {:.2} {}",
CONFIG.loadavg.icon, load, CONFIG.seperator
);
+
ThreadsData::LoadAvg(data)
}