From 1949ed2e9c3152f2f9157d10ff2be4ba749b0bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sun, 31 Oct 2021 21:12:52 +0100 Subject: [PATCH] aquatic_udp: mio: rewrite connection cleaning interval logic --- aquatic_udp/src/lib/mio/network.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/aquatic_udp/src/lib/mio/network.rs b/aquatic_udp/src/lib/mio/network.rs index b6902cc..388d5f3 100644 --- a/aquatic_udp/src/lib/mio/network.rs +++ b/aquatic_udp/src/lib/mio/network.rs @@ -53,7 +53,7 @@ pub fn run_socket_worker( let timeout = Duration::from_millis(50); let mut iter_counter = 0usize; - let mut now = Instant::now(); + let mut last_cleaning = Instant::now(); loop { poll.poll(&mut events, Some(timeout)) @@ -86,10 +86,12 @@ pub fn run_socket_worker( ); if iter_counter % 32 == 0 { - if now.elapsed().as_secs() >= config.cleaning.interval { + let now = Instant::now(); + + if last_cleaning + Duration::from_secs(config.cleaning.interval) > now { connections.clean(); - now = Instant::now(); + last_cleaning = now; } }