diff options
| author | Arnaud Bailly <arnaud.bailly@iohk.io> | 2024-10-10 08:43:48 +0200 |
|---|---|---|
| committer | Arnaud Bailly <arnaud.bailly@iohk.io> | 2024-10-10 08:43:48 +0200 |
| commit | b6643fd5226ee85f13384ab833abef07f8f97dfa (patch) | |
| tree | 5a6e77c2f2c78be708afd7cfb5f7143ecd37b179 /rust/src/web.rs | |
| parent | ccbce966b2deb1f2e15e50b0523fabe0dfa42f5d (diff) | |
| download | lambda-nantes-b6643fd5226ee85f13384ab833abef07f8f97dfa.tar.gz | |
Narrow lock scope to prevent locking leaderboard
Diffstat (limited to 'rust/src/web.rs')
| -rw-r--r-- | rust/src/web.rs | 17 |
1 files changed, 12 insertions, 5 deletions
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<Mutex<Client>>) { 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<Mutex<Client>>) -> Duration { + client_m.lock().await.time_to_next_test() +} + async fn send_test(input: &String, url: &String) -> Result<String, TestResult> { info!("Sending {} to {}", input, url); let body = input.clone(); |
