From 8a3f3fa3309ce6cfe6bcf2a17a59b0533b703408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sun, 2 Aug 2020 18:10:19 +0200 Subject: [PATCH] aquatic http load test: add option for closing conn after response --- aquatic_http_load_test/src/config.rs | 2 ++ aquatic_http_load_test/src/network.rs | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/aquatic_http_load_test/src/config.rs b/aquatic_http_load_test/src/config.rs index 482fe2a..d48300c 100644 --- a/aquatic_http_load_test/src/config.rs +++ b/aquatic_http_load_test/src/config.rs @@ -18,6 +18,7 @@ pub struct Config { #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(default)] pub struct NetworkConfig { + pub close_connection_after_response: bool, pub connection_creation_interval: usize, pub poll_timeout_microseconds: u64, pub poll_event_capacity: usize, @@ -59,6 +60,7 @@ impl Default for Config { impl Default for NetworkConfig { fn default() -> Self { Self { + close_connection_after_response: false, connection_creation_interval: 40, poll_timeout_microseconds: 47, poll_event_capacity: 1024, diff --git a/aquatic_http_load_test/src/network.rs b/aquatic_http_load_test/src/network.rs index 0e30e8b..b8c343f 100644 --- a/aquatic_http_load_test/src/network.rs +++ b/aquatic_http_load_test/src/network.rs @@ -48,6 +48,7 @@ impl Connection { pub fn read_response( &mut self, + config: &Config, state: &LoadTestState, ) -> bool { // bool = remove connection loop { @@ -93,7 +94,7 @@ impl Connection { self.bytes_read = 0; self.can_send = true; - break false; + break config.network.close_connection_after_response; }, Err(err) => { eprintln!( @@ -218,7 +219,10 @@ pub fn run_socket_thread( let token = event.token(); if let Some(connection) = connections.get_mut(&token.0){ - let remove_connection = connection.read_response(&state); + let remove_connection = connection.read_response( + config, + &state + ); if remove_connection { connections.remove(&token.0);