summaryrefslogtreecommitdiff
path: root/exercises
diff options
context:
space:
mode:
authorliv <mokou@fastmail.com>2024-03-31 16:22:54 +0200
committerGitHub <noreply@github.com>2024-03-31 16:22:54 +0200
commitca07abf3dc1d436514f3ceb97e6edda0526f14cf (patch)
treed1201f3071c5a6094c99320f93cc953283da76f8 /exercises
parent4e598572280451c884ec34669711804034f01c82 (diff)
parent842e341895690aa8d59aab42d6294994ef99d10f (diff)
Merge pull request #1929 from mo8it/threads2
threads2: simplify the exercise
Diffstat (limited to 'exercises')
-rw-r--r--exercises/20_threads/threads2.rs11
1 files changed, 7 insertions, 4 deletions
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: {}", ???);
}