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
|
pub type Sessions = Arc<RwLock<BTreeMap<String, Session>>>; // Session ID to Session
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum JocalTask {
|
pub enum JocalTasks {
|
||||||
Udp,
|
Udp,
|
||||||
Http,
|
Http,
|
||||||
Multicast,
|
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 service = self.clone();
|
||||||
|
|
||||||
let mut handles = JoinSet::new();
|
|
||||||
|
|
||||||
handles.spawn(async move {
|
handles.spawn(async move {
|
||||||
if let Err(e) = service.start_http_server().await {
|
if let Err(e) = service.start_http_server().await {
|
||||||
error!("HTTP server error: {e}");
|
error!("HTTP server error: {e}");
|
||||||
}
|
}
|
||||||
JocalTask::Http
|
JocalTasks::Http
|
||||||
});
|
});
|
||||||
let service = self.clone();
|
let service = self.clone();
|
||||||
|
|
||||||
|
@ -160,7 +158,7 @@ impl JocalService {
|
||||||
if let Err(e) = service.listen_multicast().await {
|
if let Err(e) = service.listen_multicast().await {
|
||||||
error!("UDP listener error: {e}");
|
error!("UDP listener error: {e}");
|
||||||
}
|
}
|
||||||
JocalTask::Multicast
|
JocalTasks::Multicast
|
||||||
});
|
});
|
||||||
|
|
||||||
let service = self.clone();
|
let service = self.clone();
|
||||||
|
@ -180,7 +178,7 @@ impl JocalService {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JocalTask::Tick
|
JocalTasks::Tick
|
||||||
});
|
});
|
||||||
|
|
||||||
let service = self.clone();
|
let service = self.clone();
|
||||||
|
@ -197,10 +195,8 @@ impl JocalService {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JocalTask::Udp
|
JocalTasks::Udp
|
||||||
});
|
});
|
||||||
|
|
||||||
handles
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn stop(&self) {
|
pub async fn stop(&self) {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use std::{path::Path, str::FromStr, time::Duration};
|
use std::{path::Path, str::FromStr, time::Duration};
|
||||||
|
|
||||||
use clap::Parser;
|
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 log::{error, info};
|
||||||
use ratatui::DefaultTerminal;
|
use ratatui::DefaultTerminal;
|
||||||
use ratatui_explorer::FileExplorer;
|
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());
|
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 shutdown = shutdown(&mut handles);
|
||||||
let mut shutdown = std::pin::pin!(shutdown);
|
let mut shutdown = std::pin::pin!(shutdown);
|
||||||
loop {
|
loop {
|
||||||
|
@ -102,7 +103,7 @@ async fn start_and_run(terminal: &mut DefaultTerminal, config: Config) -> Result
|
||||||
Ok(())
|
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));
|
let mut timeout = tokio::time::interval(Duration::from_secs(5));
|
||||||
timeout.tick().await;
|
timeout.tick().await;
|
||||||
loop {
|
loop {
|
||||||
|
|
Loading…
Reference in a new issue