veilid_core/network_manager/tasks/
mod.rs1pub mod rolling_transfers;
2
3use super::*;
4
5impl NetworkManager {
6 pub fn setup_tasks(&self) {
7 impl_setup_task!(
9 self,
10 Self,
11 rolling_transfers_task,
12 rolling_transfers_task_routine
13 );
14
15 {
17 let registry = self.registry();
18 self.address_filter_task.set_routine(move |s, l, t| {
19 let registry = registry.clone();
20 Box::pin(async move {
21 registry
22 .network_manager()
23 .address_filter()
24 .address_filter_task_routine(s, Timestamp::new(l), Timestamp::new(t))
25 .await
26 })
27 });
28 }
29 }
30
31 #[instrument(level = "trace", name = "NetworkManager::tick", skip_all, err)]
32 pub async fn tick(&self) -> EyreResult<()> {
33 let net = self.net();
34 let receipt_manager = self.receipt_manager();
35
36 self.rolling_transfers_task.tick().await?;
38
39 self.address_filter_task.tick().await?;
41
42 net.tick().await?;
44
45 receipt_manager.tick().await?;
47
48 self.purge_client_allowlist();
50
51 Ok(())
52 }
53
54 pub async fn cancel_tasks(&self) {
55 veilid_log!(self debug "stopping receipt manager tasks");
56 let receipt_manager = self.receipt_manager();
57 receipt_manager.cancel_tasks().await;
58
59 let net = self.net();
60 net.cancel_tasks().await;
61
62 veilid_log!(self debug "stopping rolling transfers task");
63 if let Err(e) = self.rolling_transfers_task.stop().await {
64 veilid_log!(self warn "rolling_transfers_task not stopped: {}", e);
65 }
66
67 veilid_log!(self debug "stopping address filter task");
68 if let Err(e) = self.address_filter_task.stop().await {
69 veilid_log!(self warn "address_filter_task not stopped: {}", e);
70 }
71 }
72}