Compare commits

..

1 commit

Author SHA1 Message Date
Joe Ardent
0d984bfaa5 minor code tidy 2025-10-07 16:28:20 -07:00
2 changed files with 13 additions and 10 deletions

View file

@ -36,7 +36,7 @@ pub type Peers = Arc<RwLock<BTreeMap<String, (SocketAddr, Device)>>>;
pub type Sessions = Arc<RwLock<BTreeMap<String, Session>>>; // Session ID to Session
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum JocalTasks {
pub enum JocalTask {
Udp,
Http,
Multicast,
@ -143,14 +143,16 @@ impl JocalService {
))
}
pub async fn start(&self, handles: &mut JoinSet<JocalTasks>) {
pub async fn start(&self) -> JoinSet<JocalTask> {
let service = self.clone();
let mut handles = JoinSet::new();
handles.spawn(async move {
if let Err(e) = service.start_http_server().await {
error!("HTTP server error: {e}");
}
JocalTasks::Http
JocalTask::Http
});
let service = self.clone();
@ -158,7 +160,7 @@ impl JocalService {
if let Err(e) = service.listen_multicast().await {
error!("UDP listener error: {e}");
}
JocalTasks::Multicast
JocalTask::Multicast
});
let service = self.clone();
@ -178,7 +180,7 @@ impl JocalService {
break;
}
}
JocalTasks::Tick
JocalTask::Tick
});
let service = self.clone();
@ -195,8 +197,10 @@ impl JocalService {
break;
}
}
JocalTasks::Udp
JocalTask::Udp
});
handles
}
pub async fn stop(&self) {

View file

@ -1,7 +1,7 @@
use std::{path::Path, str::FromStr, time::Duration};
use clap::Parser;
use jocalsend::{Config, DEFAULT_INTERVAL, JocalService, JocalTasks, error::Result};
use jocalsend::{Config, DEFAULT_INTERVAL, JocalService, JocalTask, error::Result};
use log::{error, info};
use ratatui::DefaultTerminal;
use ratatui_explorer::FileExplorer;
@ -51,8 +51,7 @@ async fn start_and_run(terminal: &mut DefaultTerminal, config: Config) -> Result
set_file_selection(&path, app.files());
}
let mut handles = JoinSet::new();
app.service.start(&mut handles).await;
let mut handles = app.service.start().await;
let shutdown = shutdown(&mut handles);
let mut shutdown = std::pin::pin!(shutdown);
loop {
@ -103,7 +102,7 @@ async fn start_and_run(terminal: &mut DefaultTerminal, config: Config) -> Result
Ok(())
}
async fn shutdown(handles: &mut JoinSet<JocalTasks>) {
async fn shutdown(handles: &mut JoinSet<JocalTask>) {
let mut timeout = tokio::time::interval(Duration::from_secs(5));
timeout.tick().await;
loop {