refactor: param reduction, AtomicBool to Relaxed
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user