aquatic: improve naming of socket workers, request workers

This commit is contained in:
Joakim Frostegård 2020-04-12 21:40:38 +02:00
parent f8713c09c1
commit 140aa4b75d
4 changed files with 23 additions and 8 deletions

View file

@ -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(),

View file

@ -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)>,

View file

@ -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
);
});
}

View file

@ -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,