From 3cfb49f18f0c39cdf6eed9329fd162978aa81d54 Mon Sep 17 00:00:00 2001 From: nullchinchilla Date: Sat, 20 Jul 2024 20:04:26 -0400 Subject: [PATCH] Optimize IP address formatting and refactor CPU steal time calculation in geph5-bridge --- binaries/geph5-bridge/src/main.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/binaries/geph5-bridge/src/main.rs b/binaries/geph5-bridge/src/main.rs index d10d0c5..92b0519 100644 --- a/binaries/geph5-bridge/src/main.rs +++ b/binaries/geph5-bridge/src/main.rs @@ -77,7 +77,7 @@ async fn broker_upload_loop(control_listen: SocketAddr, control_cookie: String) .split_ascii_whitespace() .next() .unwrap(), - control_listen.ip().to_string().replace(".", "-") + control_listen.ip().to_string().replace('.', "-") ); let broker_rpc = @@ -86,8 +86,21 @@ async fn broker_upload_loop(control_listen: SocketAddr, control_cookie: String) })); loop { let steal_time: f64 = { - let output = Command::new("bash").arg("c").arg(r#"steal() { cat /proc/stat | grep '^cpu ' | awk '{print $9}'; }; s1=$(steal); sleep 1; s2=$(steal); echo "scale=2; ($s2 - $s1) / 100" | bc"#).output().await.unwrap().stdout; - String::from_utf8_lossy(&output).parse().unwrap() + async fn get_steal() -> u64 { + let output = Command::new("bash") + .arg("-c") + .arg("cat /proc/stat | grep '^cpu ' | awk '{print $9}'") + .output() + .await + .unwrap() + .stdout; + String::from_utf8_lossy(&output).trim().parse().unwrap() + } + + let s1 = get_steal().await; + smol::Timer::after(Duration::from_secs(1)).await; + let s2 = get_steal().await; + (s2 as f64 - s1 as f64) / 100.0 }; // if steal_time > 0.3 { // Command::new("reboot").status().await.unwrap();