From 0d984bfaa534cc7fb3e5f9480db1eb03175a3caa Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Tue, 7 Oct 2025 16:28:20 -0700 Subject: [PATCH] minor code tidy --- src/lib.rs | 16 ++++++++++------ src/main.rs | 7 +++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index a7c1236..a2d08d2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -36,7 +36,7 @@ pub type Peers = Arc>>; pub type Sessions = Arc>>; // 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) { + pub async fn start(&self) -> JoinSet { 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) { diff --git a/src/main.rs b/src/main.rs index 2832fcb..798594b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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) { +async fn shutdown(handles: &mut JoinSet) { let mut timeout = tokio::time::interval(Duration::from_secs(5)); timeout.tick().await; loop {