Compare commits
No commits in common. "main" and "1.618033988" have entirely different histories.
main
...
1.61803398
2 changed files with 10 additions and 13 deletions
16
src/lib.rs
16
src/lib.rs
|
@ -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 JocalTask {
|
||||
pub enum JocalTasks {
|
||||
Udp,
|
||||
Http,
|
||||
Multicast,
|
||||
|
@ -143,16 +143,14 @@ impl JocalService {
|
|||
))
|
||||
}
|
||||
|
||||
pub async fn start(&self) -> JoinSet<JocalTask> {
|
||||
pub async fn start(&self, handles: &mut JoinSet<JocalTasks>) {
|
||||
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}");
|
||||
}
|
||||
JocalTask::Http
|
||||
JocalTasks::Http
|
||||
});
|
||||
let service = self.clone();
|
||||
|
||||
|
@ -160,7 +158,7 @@ impl JocalService {
|
|||
if let Err(e) = service.listen_multicast().await {
|
||||
error!("UDP listener error: {e}");
|
||||
}
|
||||
JocalTask::Multicast
|
||||
JocalTasks::Multicast
|
||||
});
|
||||
|
||||
let service = self.clone();
|
||||
|
@ -180,7 +178,7 @@ impl JocalService {
|
|||
break;
|
||||
}
|
||||
}
|
||||
JocalTask::Tick
|
||||
JocalTasks::Tick
|
||||
});
|
||||
|
||||
let service = self.clone();
|
||||
|
@ -197,10 +195,8 @@ impl JocalService {
|
|||
break;
|
||||
}
|
||||
}
|
||||
JocalTask::Udp
|
||||
JocalTasks::Udp
|
||||
});
|
||||
|
||||
handles
|
||||
}
|
||||
|
||||
pub async fn stop(&self) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use std::{path::Path, str::FromStr, time::Duration};
|
||||
|
||||
use clap::Parser;
|
||||
use jocalsend::{Config, DEFAULT_INTERVAL, JocalService, JocalTask, error::Result};
|
||||
use jocalsend::{Config, DEFAULT_INTERVAL, JocalService, JocalTasks, error::Result};
|
||||
use log::{error, info};
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui_explorer::FileExplorer;
|
||||
|
@ -51,7 +51,8 @@ async fn start_and_run(terminal: &mut DefaultTerminal, config: Config) -> Result
|
|||
set_file_selection(&path, app.files());
|
||||
}
|
||||
|
||||
let mut handles = app.service.start().await;
|
||||
let mut handles = JoinSet::new();
|
||||
app.service.start(&mut handles).await;
|
||||
let shutdown = shutdown(&mut handles);
|
||||
let mut shutdown = std::pin::pin!(shutdown);
|
||||
loop {
|
||||
|
@ -102,7 +103,7 @@ async fn start_and_run(terminal: &mut DefaultTerminal, config: Config) -> Result
|
|||
Ok(())
|
||||
}
|
||||
|
||||
async fn shutdown(handles: &mut JoinSet<JocalTask>) {
|
||||
async fn shutdown(handles: &mut JoinSet<JocalTasks>) {
|
||||
let mut timeout = tokio::time::interval(Duration::from_secs(5));
|
||||
timeout.tick().await;
|
||||
loop {
|
||||
|
|
Loading…
Reference in a new issue