From 0350293de3c00c6e5e5d787b7596bb3413d1cda1 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sat, 14 Jan 2023 17:59:33 +0000 Subject: [PATCH] refactor: param reduction, AtomicBool to Relaxed --- src/docker_data/mod.rs | 6 +++--- src/input_handler/mod.rs | 4 ++-- src/ui/mod.rs | 15 ++++++--------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/docker_data/mod.rs b/src/docker_data/mod.rs index 7e89b90..5daa6c7 100644 --- a/src/docker_data/mod.rs +++ b/src/docker_data/mod.rs @@ -408,7 +408,7 @@ impl DockerData { .values() .into_iter() .for_each(tokio::task::JoinHandle::abort); - self.is_running.store(false, Ordering::SeqCst); + self.is_running.store(false, Ordering::Relaxed); } } } @@ -417,7 +417,7 @@ impl DockerData { /// Initialise self, and start the message receiving loop pub async fn init( app_data: Arc>, - docker: Arc, + docker: Docker, gui_state: Arc>, receiver: Receiver, is_running: Arc, @@ -427,7 +427,7 @@ impl DockerData { let mut inner = Self { app_data, args, - docker, + docker: Arc::new(docker), gui_state, initialised: false, receiver, diff --git a/src/input_handler/mod.rs b/src/input_handler/mod.rs index 93a3110..9d88df9 100644 --- a/src/input_handler/mod.rs +++ b/src/input_handler/mod.rs @@ -73,7 +73,7 @@ impl InputHandler { } } } - if !self.is_running.load(Ordering::SeqCst) { + if !self.is_running.load(Ordering::Relaxed) { break; } } @@ -134,7 +134,7 @@ impl InputHandler { .lock() .status_contains(&[Status::Error, Status::Init]); if error_init || self.docker_sender.send(DockerMessage::Quit).await.is_err() { - self.is_running.store(false, Ordering::SeqCst); + self.is_running.store(false, Ordering::Relaxed); } } diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 6632eac..40d917d 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -9,10 +9,7 @@ use std::{ io, sync::{atomic::Ordering, Arc}, }; -use std::{ - sync::atomic::AtomicBool, - time::{Duration, Instant}, -}; +use std::{sync::atomic::AtomicBool, time::Instant}; use tokio::sync::mpsc::Sender; use tui::{ backend::{Backend, CrosstermBackend}, @@ -38,7 +35,7 @@ pub async fn create_ui( is_running: Arc, gui_state: Arc>, docker_sx: Sender, - update_duration: Duration, + // update_duration: Duration, ) -> Result<()> { enable_raw_mode()?; let mut stdout = io::stdout(); @@ -53,7 +50,6 @@ pub async fn create_ui( is_running, gui_state, docker_sx, - update_duration, ) .await; terminal.clear()?; @@ -80,15 +76,16 @@ async fn run_app( is_running: Arc, gui_state: Arc>, docker_sx: Sender, - update_duration: Duration, ) -> Result<(), AppError> { + let update_duration = + std::time::Duration::from_millis(u64::from(app_data.lock().args.docker_interval)); let input_poll_rate = std::time::Duration::from_millis(75); let status_dockerconnect = gui_state.lock().status_contains(&[Status::DockerConnect]); if status_dockerconnect { let mut seconds = 5; loop { if seconds < 1 { - is_running.store(false, Ordering::SeqCst); + is_running.store(false, Ordering::Relaxed); break; } if terminal @@ -132,7 +129,7 @@ async fn run_app( now = Instant::now(); } - if !is_running.load(Ordering::SeqCst) { + if !is_running.load(Ordering::Relaxed) { break; } }