From 140aa4b75d5172504092e0678780f3a27d133ece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sun, 12 Apr 2020 21:40:38 +0200 Subject: [PATCH] aquatic: improve naming of socket workers, request workers --- aquatic/src/lib/config.rs | 10 +++++++--- aquatic/src/lib/handlers.rs | 2 +- aquatic/src/lib/lib.rs | 17 ++++++++++++++--- aquatic/src/lib/network.rs | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/aquatic/src/lib/config.rs b/aquatic/src/lib/config.rs index 89315ca..2edafb7 100644 --- a/aquatic/src/lib/config.rs +++ b/aquatic/src/lib/config.rs @@ -5,9 +5,13 @@ use serde::{Serialize, Deserialize}; #[derive(Clone, Debug, Serialize, Deserialize)] pub struct Config { - /// Spawn this number of threads for workers + /// Socket workers receive requests from the socket, parse them and send + /// them on to the request workers. They then recieve responses from the + /// request workers, encode them and send them back over the socket. pub socket_workers: usize, - pub response_workers: usize, + /// Request workers receive a number of requests from socket workers, + /// generate responses and send them back to the socket workers. + pub request_workers: usize, pub network: NetworkConfig, pub handlers: HandlerConfig, pub statistics: StatisticsConfig, @@ -62,7 +66,7 @@ impl Default for Config { fn default() -> Self { Self { socket_workers: 1, - response_workers: 1, + request_workers: 1, network: NetworkConfig::default(), handlers: HandlerConfig::default(), statistics: StatisticsConfig::default(), diff --git a/aquatic/src/lib/handlers.rs b/aquatic/src/lib/handlers.rs index 28a01fe..59a70dd 100644 --- a/aquatic/src/lib/handlers.rs +++ b/aquatic/src/lib/handlers.rs @@ -13,7 +13,7 @@ use crate::common::*; use crate::config::Config; -pub fn handle( +pub fn run_request_worker( state: State, config: Config, request_receiver: Receiver<(Request, SocketAddr)>, diff --git a/aquatic/src/lib/lib.rs b/aquatic/src/lib/lib.rs index 13c81ab..7520203 100644 --- a/aquatic/src/lib/lib.rs +++ b/aquatic/src/lib/lib.rs @@ -18,14 +18,19 @@ pub fn run(config: Config){ let (request_sender, request_receiver) = unbounded(); let (response_sender, response_receiver) = unbounded(); - for _ in 0..config.response_workers { + for _ in 0..config.request_workers { let state = state.clone(); let config = config.clone(); let request_receiver = request_receiver.clone(); let response_sender = response_sender.clone(); ::std::thread::spawn(move || { - handlers::handle(state, config, request_receiver, response_sender); + handlers::run_request_worker( + state, + config, + request_receiver, + response_sender + ); }); } @@ -36,7 +41,13 @@ pub fn run(config: Config){ let response_receiver = response_receiver.clone(); ::std::thread::spawn(move || { - network::run_event_loop(state, config, i, request_sender, response_receiver); + network::run_socket_worker( + state, + config, + i, + request_sender, + response_receiver + ); }); } diff --git a/aquatic/src/lib/network.rs b/aquatic/src/lib/network.rs index f771f3e..67485fb 100644 --- a/aquatic/src/lib/network.rs +++ b/aquatic/src/lib/network.rs @@ -16,7 +16,7 @@ use crate::common::*; use crate::config::Config; -pub fn run_event_loop( +pub fn run_socket_worker( state: State, config: Config, token_num: usize,