From 34f263f6b9593182facb8969fd35ac241edd5745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sun, 21 Nov 2021 19:39:44 +0100 Subject: [PATCH] udp: new file structure: each worker types is submod of workers mod --- aquatic_udp/src/lib/lib.rs | 15 ++++----------- aquatic_udp/src/lib/workers/mod.rs | 3 +++ .../src/lib/{handlers.rs => workers/request.rs} | 0 .../src/lib/{network.rs => workers/socket.rs} | 0 .../src/lib/{tasks.rs => workers/statistics.rs} | 13 +++++++++++-- aquatic_udp_bench/src/main.rs | 2 +- 6 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 aquatic_udp/src/lib/workers/mod.rs rename aquatic_udp/src/lib/{handlers.rs => workers/request.rs} (100%) rename aquatic_udp/src/lib/{network.rs => workers/socket.rs} (100%) rename aquatic_udp/src/lib/{tasks.rs => workers/statistics.rs} (86%) diff --git a/aquatic_udp/src/lib/lib.rs b/aquatic_udp/src/lib/lib.rs index f9ecb93..1e7e604 100644 --- a/aquatic_udp/src/lib/lib.rs +++ b/aquatic_udp/src/lib/lib.rs @@ -1,15 +1,12 @@ pub mod common; pub mod config; -pub mod handlers; -pub mod network; -pub mod tasks; +pub mod workers; use config::Config; use std::collections::BTreeMap; use std::sync::{atomic::AtomicUsize, Arc}; use std::thread::Builder; -use std::time::Duration; use anyhow::Context; #[cfg(feature = "cpu-pinning")] @@ -72,7 +69,7 @@ pub fn run(config: Config) -> ::anyhow::Result<()> { WorkerIndex::RequestWorker(i), ); - handlers::run_request_worker( + workers::request::run_request_worker( config, state, request_receiver, @@ -101,7 +98,7 @@ pub fn run(config: Config) -> ::anyhow::Result<()> { WorkerIndex::SocketWorker(i), ); - network::run_socket_worker( + workers::socket::run_socket_worker( state, config, i, @@ -127,11 +124,7 @@ pub fn run(config: Config) -> ::anyhow::Result<()> { WorkerIndex::Other, ); - loop { - ::std::thread::sleep(Duration::from_secs(config.statistics.interval)); - - tasks::gather_and_print_statistics(&state, &config); - } + workers::statistics::run_statistics_worker(config, state); }) .with_context(|| "spawn statistics worker")?; } diff --git a/aquatic_udp/src/lib/workers/mod.rs b/aquatic_udp/src/lib/workers/mod.rs new file mode 100644 index 0000000..668fd84 --- /dev/null +++ b/aquatic_udp/src/lib/workers/mod.rs @@ -0,0 +1,3 @@ +pub mod request; +pub mod socket; +pub mod statistics; diff --git a/aquatic_udp/src/lib/handlers.rs b/aquatic_udp/src/lib/workers/request.rs similarity index 100% rename from aquatic_udp/src/lib/handlers.rs rename to aquatic_udp/src/lib/workers/request.rs diff --git a/aquatic_udp/src/lib/network.rs b/aquatic_udp/src/lib/workers/socket.rs similarity index 100% rename from aquatic_udp/src/lib/network.rs rename to aquatic_udp/src/lib/workers/socket.rs diff --git a/aquatic_udp/src/lib/tasks.rs b/aquatic_udp/src/lib/workers/statistics.rs similarity index 86% rename from aquatic_udp/src/lib/tasks.rs rename to aquatic_udp/src/lib/workers/statistics.rs index 6624a5d..fc8e8d8 100644 --- a/aquatic_udp/src/lib/tasks.rs +++ b/aquatic_udp/src/lib/workers/statistics.rs @@ -1,9 +1,18 @@ use std::sync::atomic::{AtomicUsize, Ordering}; +use std::time::Duration; -use super::common::*; +use crate::common::*; use crate::config::Config; -pub fn gather_and_print_statistics(state: &State, config: &Config) { +pub fn run_statistics_worker(config: Config, state: State) { + loop { + ::std::thread::sleep(Duration::from_secs(config.statistics.interval)); + + gather_and_print_statistics(&config, &state); + } +} + +fn gather_and_print_statistics(config: &Config, state: &State) { let interval = config.statistics.interval; let requests_received: f64 = state diff --git a/aquatic_udp_bench/src/main.rs b/aquatic_udp_bench/src/main.rs index c0258e1..153ccac 100644 --- a/aquatic_udp_bench/src/main.rs +++ b/aquatic_udp_bench/src/main.rs @@ -7,7 +7,7 @@ //! Scrape: 1 873 545 requests/second, 533.75 ns/request //! ``` -use aquatic_udp::handlers::run_request_worker; +use aquatic_udp::workers::request::run_request_worker; use crossbeam_channel::unbounded; use num_format::{Locale, ToFormattedString}; use rand::{rngs::SmallRng, thread_rng, Rng, SeedableRng};