From b6643fd5226ee85f13384ab833abef07f8f97dfa Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Thu, 10 Oct 2024 08:43:48 +0200 Subject: Narrow lock scope to prevent locking leaderboard --- rust/src/web.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'rust/src/web.rs') diff --git a/rust/src/web.rs b/rust/src/web.rs index 70786d3..a468cc7 100644 --- a/rust/src/web.rs +++ b/rust/src/web.rs @@ -298,16 +298,23 @@ async fn main() -> std::io::Result<()> { async fn send_tests(client_m: Arc>) { loop { - let mut client = client_m.lock().await; - tokio::time::sleep(client.time_to_next_test()).await; + let sleep = sleep_time(&client_m).await; + tokio::time::sleep(sleep).await; - let (input, expected) = client.generate_expr(); - let response = send_test(&input, &client.url).await; + { + let mut client = client_m.lock().await; + let (input, expected) = client.generate_expr(); + let response = send_test(&input, &client.url).await; - client.check_result(&expected, &response); + client.check_result(&expected, &response); + } } } +async fn sleep_time(client_m: &Arc>) -> Duration { + client_m.lock().await.time_to_next_test() +} + async fn send_test(input: &String, url: &String) -> Result { info!("Sending {} to {}", input, url); let body = input.clone(); -- cgit v1.2.3