summaryrefslogtreecommitdiff
path: root/rustlings/exercises/20_threads/threads2.rs
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
committerHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
commit4dfc11d74ab02ac5765ae5d08fb750c91f4744b4 (patch)
tree17ba62056d6b691dd0217b0e8f1b3a5826dce0f6 /rustlings/exercises/20_threads/threads2.rs
parent02d8f1c62896576e1266553a56980eddbc2a88d7 (diff)
rustlings: move to rust/
Diffstat (limited to 'rustlings/exercises/20_threads/threads2.rs')
-rw-r--r--rustlings/exercises/20_threads/threads2.rs34
1 files changed, 0 insertions, 34 deletions
diff --git a/rustlings/exercises/20_threads/threads2.rs b/rustlings/exercises/20_threads/threads2.rs
deleted file mode 100644
index 7020cb9..0000000
--- a/rustlings/exercises/20_threads/threads2.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Building on the last exercise, we want all of the threads to complete their
-// work. But this time, the spawned threads need to be in charge of updating a
-// shared value: `JobStatus.jobs_done`
-
-use std::{sync::Arc, thread, time::Duration};
-
-struct JobStatus {
- jobs_done: u32,
-}
-
-fn main() {
- // TODO: `Arc` isn't enough if you want a **mutable** shared state.
- let status = Arc::new(JobStatus { jobs_done: 0 });
-
- let mut handles = Vec::new();
- for _ in 0..10 {
- let status_shared = Arc::clone(&status);
- let handle = thread::spawn(move || {
- thread::sleep(Duration::from_millis(250));
-
- // TODO: You must take an action before you update a shared value.
- status_shared.jobs_done += 1;
- });
- handles.push(handle);
- }
-
- // Waiting for all jobs to complete.
- for handle in handles {
- handle.join().unwrap();
- }
-
- // TODO: Print the value of `JobStatus.jobs_done`.
- println!("Jobs done: {}", todo!());
-}