refactor: param reduction, AtomicBool to Relaxed

This commit is contained in:
Jack Wills
2023-01-14 17:59:33 +00:00
parent 8cd199db49
commit 0350293de3
3 changed files with 11 additions and 14 deletions
+3 -3
View File
@@ -408,7 +408,7 @@ impl DockerData {
.values() .values()
.into_iter() .into_iter()
.for_each(tokio::task::JoinHandle::abort); .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 /// Initialise self, and start the message receiving loop
pub async fn init( pub async fn init(
app_data: Arc<Mutex<AppData>>, app_data: Arc<Mutex<AppData>>,
docker: Arc<Docker>, docker: Docker,
gui_state: Arc<Mutex<GuiState>>, gui_state: Arc<Mutex<GuiState>>,
receiver: Receiver<DockerMessage>, receiver: Receiver<DockerMessage>,
is_running: Arc<AtomicBool>, is_running: Arc<AtomicBool>,
@@ -427,7 +427,7 @@ impl DockerData {
let mut inner = Self { let mut inner = Self {
app_data, app_data,
args, args,
docker, docker: Arc::new(docker),
gui_state, gui_state,
initialised: false, initialised: false,
receiver, receiver,
+2 -2
View File
@@ -73,7 +73,7 @@ impl InputHandler {
} }
} }
} }
if !self.is_running.load(Ordering::SeqCst) { if !self.is_running.load(Ordering::Relaxed) {
break; break;
} }
} }
@@ -134,7 +134,7 @@ impl InputHandler {
.lock() .lock()
.status_contains(&[Status::Error, Status::Init]); .status_contains(&[Status::Error, Status::Init]);
if error_init || self.docker_sender.send(DockerMessage::Quit).await.is_err() { 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);
} }
} }
+6 -9
View File
@@ -9,10 +9,7 @@ use std::{
io, io,
sync::{atomic::Ordering, Arc}, sync::{atomic::Ordering, Arc},
}; };
use std::{ use std::{sync::atomic::AtomicBool, time::Instant};
sync::atomic::AtomicBool,
time::{Duration, Instant},
};
use tokio::sync::mpsc::Sender; use tokio::sync::mpsc::Sender;
use tui::{ use tui::{
backend::{Backend, CrosstermBackend}, backend::{Backend, CrosstermBackend},
@@ -38,7 +35,7 @@ pub async fn create_ui(
is_running: Arc<AtomicBool>, is_running: Arc<AtomicBool>,
gui_state: Arc<Mutex<GuiState>>, gui_state: Arc<Mutex<GuiState>>,
docker_sx: Sender<DockerMessage>, docker_sx: Sender<DockerMessage>,
update_duration: Duration, // update_duration: Duration,
) -> Result<()> { ) -> Result<()> {
enable_raw_mode()?; enable_raw_mode()?;
let mut stdout = io::stdout(); let mut stdout = io::stdout();
@@ -53,7 +50,6 @@ pub async fn create_ui(
is_running, is_running,
gui_state, gui_state,
docker_sx, docker_sx,
update_duration,
) )
.await; .await;
terminal.clear()?; terminal.clear()?;
@@ -80,15 +76,16 @@ async fn run_app<B: Backend + Send>(
is_running: Arc<AtomicBool>, is_running: Arc<AtomicBool>,
gui_state: Arc<Mutex<GuiState>>, gui_state: Arc<Mutex<GuiState>>,
docker_sx: Sender<DockerMessage>, docker_sx: Sender<DockerMessage>,
update_duration: Duration,
) -> Result<(), AppError> { ) -> 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 input_poll_rate = std::time::Duration::from_millis(75);
let status_dockerconnect = gui_state.lock().status_contains(&[Status::DockerConnect]); let status_dockerconnect = gui_state.lock().status_contains(&[Status::DockerConnect]);
if status_dockerconnect { if status_dockerconnect {
let mut seconds = 5; let mut seconds = 5;
loop { loop {
if seconds < 1 { if seconds < 1 {
is_running.store(false, Ordering::SeqCst); is_running.store(false, Ordering::Relaxed);
break; break;
} }
if terminal if terminal
@@ -132,7 +129,7 @@ async fn run_app<B: Backend + Send>(
now = Instant::now(); now = Instant::now();
} }
if !is_running.load(Ordering::SeqCst) { if !is_running.load(Ordering::Relaxed) {
break; break;
} }
} }