summaryrefslogtreecommitdiff
path: root/rust/src/web.rs
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud.bailly@iohk.io>2024-10-10 08:43:48 +0200
committerArnaud Bailly <arnaud.bailly@iohk.io>2024-10-10 08:43:48 +0200
commitb6643fd5226ee85f13384ab833abef07f8f97dfa (patch)
tree5a6e77c2f2c78be708afd7cfb5f7143ecd37b179 /rust/src/web.rs
parentccbce966b2deb1f2e15e50b0523fabe0dfa42f5d (diff)
downloadlambda-nantes-b6643fd5226ee85f13384ab833abef07f8f97dfa.tar.gz
Narrow lock scope to prevent locking leaderboard
Diffstat (limited to 'rust/src/web.rs')
-rw-r--r--rust/src/web.rs17
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();