| error[E0382]: use of moved value: `x` |
| --> $DIR/spawn-thread.rs:15:42 |
| | |
| LL | let x = (Arc::new("foo".to_owned()), Arc::new(vec![1, 2, 3]), Arc::new(1)); |
| | - move occurs because `x` has type `(Arc<String>, Arc<Vec<i32>>, Arc<i32>)`, which does not implement the `Copy` trait |
| LL | for _ in 0..10 { |
| | -------------- inside of this loop |
| LL | let handler = std::thread::spawn(use || { |
| | __________________________________________-^^^^^ |
| LL | | |
| LL | | drop((x.0, x.1, x.2)); |
| | | --- use occurs due to use in closure |
| LL | | }); |
| | |_________- value moved here, in previous iteration of loop |
| | |
| help: consider moving the expression out of the loop so it is only moved once |
| | |
| LL ~ let mut value = std::thread::spawn(use || { |
| LL + |
| LL + drop((x.0, x.1, x.2)); |
| LL + }); |
| LL ~ for _ in 0..10 { |
| LL ~ let handler = value; |
| | |
| |
| error: aborting due to 1 previous error |
| |
| For more information about this error, try `rustc --explain E0382`. |