revert: Dockerdate stat refactor, inadvertently reduced update interval

This commit is contained in:
Jack Wills
2022-09-07 03:25:36 +00:00
parent 5f12362db7
commit fd0081ee7f
2 changed files with 19 additions and 18 deletions
+11 -11
View File
@@ -81,7 +81,7 @@ impl DockerData {
/// Get a single docker stat in order to update mem and cpu usage /// Get a single docker stat in order to update mem and cpu usage
/// don't take &self, so that can tokio::spawn into it's own thread /// don't take &self, so that can tokio::spawn into it's own thread
/// remove from spawns hashmap when complete /// remove if from spawns hashmap when complete
async fn update_container_stat( async fn update_container_stat(
docker: Arc<Docker>, docker: Arc<Docker>,
id: String, id: String,
@@ -146,17 +146,19 @@ impl DockerData {
let spawns = Arc::clone(&self.spawns); let spawns = Arc::clone(&self.spawns);
let is_running = *is_running; let is_running = *is_running;
let id = id.clone(); let id = id.clone();
let key = SpawnId::Stats(id.clone());
self.spawns.lock().entry(key).or_insert_with(|| { let key = SpawnId::Stats(id.clone());
tokio::spawn(Self::update_container_stat( let spawn_contains_id = spawns.lock().contains_key(&key);
let s = tokio::spawn(Self::update_container_stat(
docker, docker,
id.clone(), id.clone(),
app_data, app_data,
is_running, is_running,
spawns, spawns,
)) ));
}); if !spawn_contains_id {
self.spawns.lock().insert(key, s);
}
} }
} }
@@ -250,12 +252,10 @@ impl DockerData {
let app_data = Arc::clone(&self.app_data); let app_data = Arc::clone(&self.app_data);
let spawns = Arc::clone(&self.spawns); let spawns = Arc::clone(&self.spawns);
let key = SpawnId::Log(id.clone()); let key = SpawnId::Log(id.clone());
self.spawns.lock().insert( let join_handle = tokio::spawn(Self::update_log(
key,
tokio::spawn(Self::update_log(
docker, id, timestamps, 0, app_data, spawns, docker, id, timestamps, 0, app_data, spawns,
)), ));
); self.spawns.lock().insert(key, join_handle);
} }
} }
+1
View File
@@ -106,6 +106,7 @@ async fn run_app<B: Backend + Send>(
} else { } else {
let mut now = Instant::now(); let mut now = Instant::now();
loop { loop {
if terminal.draw(|f| ui(f, &app_data, &gui_state)).is_err() { if terminal.draw(|f| ui(f, &app_data, &gui_state)).is_err() {
return Err(AppError::Terminal); return Err(AppError::Terminal);
} }