Optimize the notify event handler

This commit is contained in:
mo8it
2024-04-25 14:44:12 +02:00
parent 88f27a5377
commit 14fe248b4b
3 changed files with 22 additions and 13 deletions
+4 -4
View File
@@ -144,23 +144,23 @@ fn main() -> Result<()> {
match args.command {
None => {
let notify_exercise_paths: Option<&'static [&'static str]> = if args.manual_run {
let notify_exercise_names = if args.manual_run {
None
} else {
// For the the notify event handler thread.
// Leaking is not a problem because the slice lives until the end of the program.
Some(
app_state
&*app_state
.exercises()
.iter()
.map(|exercise| exercise.path)
.map(|exercise| exercise.name.as_bytes())
.collect::<Vec<_>>()
.leak(),
)
};
loop {
match watch::watch(&mut app_state, notify_exercise_paths)? {
match watch::watch(&mut app_state, notify_exercise_names)? {
WatchExit::Shutdown => break,
// It is much easier to exit the watch mode, launch the list mode and then restart
// the watch mode instead of trying to pause the watch threads and correct the