From 842e341895690aa8d59aab42d6294994ef99d10f Mon Sep 17 00:00:00 2001 From: mo8it Date: Wed, 27 Mar 2024 21:24:36 +0100 Subject: threads2: simplify threads2 --- exercises/20_threads/threads2.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'exercises/20_threads/threads2.rs') diff --git a/exercises/20_threads/threads2.rs b/exercises/20_threads/threads2.rs index 62dad80..60d6824 100644 --- a/exercises/20_threads/threads2.rs +++ b/exercises/20_threads/threads2.rs @@ -18,7 +18,9 @@ struct JobStatus { } fn main() { + // TODO: `Arc` isn't enough if you want a **mutable** shared state let status = Arc::new(JobStatus { jobs_completed: 0 }); + let mut handles = vec![]; for _ in 0..10 { let status_shared = Arc::clone(&status); @@ -29,11 +31,12 @@ fn main() { }); handles.push(handle); } + + // Waiting for all jobs to complete for handle in handles { handle.join().unwrap(); - // TODO: Print the value of the JobStatus.jobs_completed. Did you notice - // anything interesting in the output? Do you have to 'join' on all the - // handles? - println!("jobs completed {}", ???); } + + // TODO: Print the value of `JobStatus.jobs_completed` + println!("Jobs completed: {}", ???); } -- cgit v1.2.3