From 76ccf7c00691f815c3ab0bede838c99252ba84f0 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:30:02 +0000 Subject: [PATCH] refactor: remove uneccessary is_running load --- src/app_data/container_state.rs | 1 + src/docker_data/message.rs | 8 -------- src/docker_data/mod.rs | 16 +--------------- src/input_handler/mod.rs | 14 ++++---------- src/main.rs | 14 ++------------ 5 files changed, 8 insertions(+), 45 deletions(-) diff --git a/src/app_data/container_state.rs b/src/app_data/container_state.rs index 39fbdc5..b9b22b5 100644 --- a/src/app_data/container_state.rs +++ b/src/app_data/container_state.rs @@ -133,6 +133,7 @@ impl ContainerPorts { .count() } + /// Return as tuple of Strings, ip address, private port, and public port pub fn print(&self) -> (String, String, String) { ( self.ip diff --git a/src/docker_data/message.rs b/src/docker_data/message.rs index 1f60261..b0af01a 100644 --- a/src/docker_data/message.rs +++ b/src/docker_data/message.rs @@ -8,14 +8,6 @@ use tokio::sync::oneshot::Sender; pub enum DockerMessage { ConfirmDelete(ContainerId), Control((DockerCommand, ContainerId)), - - // Delete(ContainerId), Exec(Sender>), - // Pause(ContainerId), - Quit, - // Restart(ContainerId), - // Start(ContainerId), - // Stop(ContainerId), - // Resume(ContainerId), Update, } diff --git a/src/docker_data/mod.rs b/src/docker_data/mod.rs index 06447d0..cb69fd3 100644 --- a/src/docker_data/mod.rs +++ b/src/docker_data/mod.rs @@ -10,10 +10,7 @@ use futures_util::StreamExt; use parking_lot::Mutex; use std::{ collections::HashMap, - sync::{ - atomic::{AtomicBool, AtomicUsize}, - Arc, - }, + sync::{atomic::AtomicUsize, Arc}, }; use tokio::{ sync::mpsc::{Receiver, Sender}, @@ -62,7 +59,6 @@ pub struct DockerData { binate: Binate, docker: Arc, gui_state: Arc>, - is_running: Arc, init: Option>, receiver: Receiver, spawns: Arc>>>, @@ -410,14 +406,6 @@ impl DockerData { docker_tx.send(Arc::clone(&self.docker)).ok(); } DockerMessage::Update => self.update_everything().await, - DockerMessage::Quit => { - self.spawns - .lock() - .values() - .for_each(tokio::task::JoinHandle::abort); - self.is_running - .store(false, std::sync::atomic::Ordering::SeqCst); - } } } } @@ -443,7 +431,6 @@ impl DockerData { docker_rx: Receiver, docker_tx: Sender, gui_state: Arc>, - is_running: Arc, ) { let args = app_data.lock().args.clone(); if app_data.lock().get_error().is_none() { @@ -454,7 +441,6 @@ impl DockerData { docker: Arc::new(docker), gui_state, init: Some(Arc::new(AtomicUsize::new(0))), - is_running, receiver: docker_rx, spawns: Arc::new(Mutex::new(HashMap::new())), }; diff --git a/src/input_handler/mod.rs b/src/input_handler/mod.rs index 9acefb8..a736182 100644 --- a/src/input_handler/mod.rs +++ b/src/input_handler/mod.rs @@ -1,10 +1,7 @@ use std::{ fs::OpenOptions, io::{BufWriter, Write}, - sync::{ - atomic::{AtomicBool, Ordering}, - Arc, - }, + sync::{atomic::AtomicBool, Arc}, time::SystemTime, }; @@ -84,9 +81,6 @@ impl InputHandler { } } } - if !self.is_running.load(Ordering::SeqCst) { - break; - } } } @@ -97,12 +91,12 @@ impl InputHandler { /// Send a quit message to docker, to abort all spawns, if an error is returned, set is_running to false here instead /// If gui_status is Error or Init, then just set the is_running to false immediately, for a quicker exit - async fn quit(&self) { + fn quit(&self) { let error_init = self .gui_state .lock() .status_contains(&[Status::Error, Status::Init]); - if error_init || self.docker_tx.send(DockerMessage::Quit).await.is_err() { + if !error_init { self.is_running .store(false, std::sync::atomic::Ordering::SeqCst); } @@ -466,7 +460,7 @@ impl InputHandler { let is_q = || key_code == KeyCode::Char('q') || key_code == KeyCode::Char('Q'); if key_modifier == KeyModifiers::CONTROL && is_c() || is_q() && !contains_filter { // Always just quit on Ctrl + c/C or q/Q, unless in FIlter status active - self.quit().await; + self.quit(); } if contains_error { diff --git a/src/main.rs b/src/main.rs index 81a0639..b13cd59 100644 --- a/src/main.rs +++ b/src/main.rs @@ -52,7 +52,6 @@ async fn docker_init( docker_rx: Receiver, docker_tx: Sender, gui_state: &Arc>, - is_running: &Arc, host: Option, ) { let connection = host.map_or_else(Docker::connect_with_socket_defaults, |host| { @@ -63,10 +62,9 @@ async fn docker_init( if docker.ping().await.is_ok() { let app_data = Arc::clone(app_data); let gui_state = Arc::clone(gui_state); - let is_running = Arc::clone(is_running); tokio::spawn(DockerData::init( - app_data, docker, docker_rx, docker_tx, gui_state, is_running, + app_data, docker, docker_rx, docker_tx, gui_state, )); } else { app_data @@ -118,15 +116,7 @@ async fn main() { let is_running = Arc::new(AtomicBool::new(true)); let (docker_tx, docker_rx) = tokio::sync::mpsc::channel(32); - docker_init( - &app_data, - docker_rx, - docker_tx.clone(), - &gui_state, - &is_running, - host, - ) - .await; + docker_init(&app_data, docker_rx, docker_tx.clone(), &gui_state, host).await; if args.gui { let (input_tx, input_rx) = tokio::sync::mpsc::channel(32);