From 143585792cf80c7c5d816fbf0228adb704192fec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sun, 31 Oct 2021 19:43:38 +0100 Subject: [PATCH] aquatic_udp: mio: actually clean connections according to config --- aquatic_udp/src/lib/mio/network.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/aquatic_udp/src/lib/mio/network.rs b/aquatic_udp/src/lib/mio/network.rs index 73dacfc..b6902cc 100644 --- a/aquatic_udp/src/lib/mio/network.rs +++ b/aquatic_udp/src/lib/mio/network.rs @@ -4,7 +4,7 @@ use std::sync::{ atomic::{AtomicUsize, Ordering}, Arc, }; -use std::time::Duration; +use std::time::{Duration, Instant}; use std::vec::Drain; use aquatic_common::access_list::AccessListQuery; @@ -53,6 +53,7 @@ pub fn run_socket_worker( let timeout = Duration::from_millis(50); let mut iter_counter = 0usize; + let mut now = Instant::now(); loop { poll.poll(&mut events, Some(timeout)) @@ -84,13 +85,15 @@ pub fn run_socket_worker( local_responses.drain(..), ); - iter_counter += 1; + if iter_counter % 32 == 0 { + if now.elapsed().as_secs() >= config.cleaning.interval { + connections.clean(); - if iter_counter == 1000 { - connections.clean(); - - iter_counter = 0; + now = Instant::now(); + } } + + iter_counter = iter_counter.wrapping_add(1); } }