Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::sync::Arc;
- use std::sync::Mutex;
- use std::thread;
- fn main() {
- let unimportant_variable = 3;
- let my_shared_variable: Arc<Mutex<Option<Box<[i32]>>>> = Arc::new(Mutex::new(None));
- let my_shared_variable_tmp = Arc::clone(&my_shared_variable);
- let thread_handle_1 = thread::spawn(move || {
- let mut var = my_shared_variable_tmp.lock().unwrap();
- *var = Some(function_returning_box(unimportant_variable));
- });
- thread_handle_1.join().expect("joining thread 1");
- println!(
- "{:?}",
- my_shared_variable.lock().expect("Error locking mutex")
- )
- }
- fn function_returning_box(v: i32) -> Box<[i32]> {
- (0..v).collect()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement