summaryrefslogtreecommitdiff
path: root/src/app_state.rs
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2025-02-18 20:10:52 +0100
committermo8it <mo8it@proton.me>2025-02-18 20:10:52 +0100
commitd9872f2615a11ce94deb85c8f1c215d69abd7992 (patch)
treea525e7eaac10e75db45921f79578d3da33bf1a13 /src/app_state.rs
parent298be671b9108e490fcef6b8febace8659ec710a (diff)
Upgrade to edition 2024
Diffstat (limited to 'src/app_state.rs')
-rw-r--r--src/app_state.rs60
1 files changed, 31 insertions, 29 deletions
diff --git a/src/app_state.rs b/src/app_state.rs
index 5979150..d1c45d4 100644
--- a/src/app_state.rs
+++ b/src/app_state.rs
@@ -1,11 +1,11 @@
-use anyhow::{bail, Context, Error, Result};
-use crossterm::{cursor, terminal, QueueableCommand};
+use anyhow::{Context, Error, Result, bail};
+use crossterm::{QueueableCommand, cursor, terminal};
use std::{
collections::HashSet,
env,
fs::{File, OpenOptions},
io::{Read, Seek, StdoutLock, Write},
- path::{Path, MAIN_SEPARATOR_STR},
+ path::{MAIN_SEPARATOR_STR, Path},
process::{Command, Stdio},
sync::{
atomic::{AtomicUsize, Ordering::Relaxed},
@@ -427,32 +427,34 @@ impl AppState {
let next_exercise_ind = &next_exercise_ind;
let slf = &self;
thread::Builder::new()
- .spawn_scoped(s, move || loop {
- let exercise_ind = next_exercise_ind.fetch_add(1, Relaxed);
- let Some(exercise) = slf.exercises.get(exercise_ind) else {
- // No more exercises.
- break;
- };
-
- if exercise_progress_sender
- .send((exercise_ind, CheckProgress::Checking))
- .is_err()
- {
- break;
- };
-
- let success = exercise.run_exercise(None, &slf.cmd_runner);
- let progress = match success {
- Ok(true) => CheckProgress::Done,
- Ok(false) => CheckProgress::Pending,
- Err(_) => CheckProgress::None,
- };
-
- if exercise_progress_sender
- .send((exercise_ind, progress))
- .is_err()
- {
- break;
+ .spawn_scoped(s, move || {
+ loop {
+ let exercise_ind = next_exercise_ind.fetch_add(1, Relaxed);
+ let Some(exercise) = slf.exercises.get(exercise_ind) else {
+ // No more exercises.
+ break;
+ };
+
+ if exercise_progress_sender
+ .send((exercise_ind, CheckProgress::Checking))
+ .is_err()
+ {
+ break;
+ };
+
+ let success = exercise.run_exercise(None, &slf.cmd_runner);
+ let progress = match success {
+ Ok(true) => CheckProgress::Done,
+ Ok(false) => CheckProgress::Pending,
+ Err(_) => CheckProgress::None,
+ };
+
+ if exercise_progress_sender
+ .send((exercise_ind, progress))
+ .is_err()
+ {
+ break;
+ }
}
})
.context("Failed to spawn a thread to check all exercises")?;