SHOW:
|
|
- or go back to the newest paste.
1 | use std::thread; | |
2 | use std::sync::{RwLock,Arc}; | |
3 | fn main() { | |
4 | let primes=Arc::new(RwLock::new(vec![2,3,5])); | |
5 | let primes2=primes.clone(); | |
6 | let primes_w=primes.write().unwrap(); | |
7 | let handle=thread::spawn(move || { | |
8 | let primes_r=primes2.read().unwrap(); | |
9 | for i in &primes_r { | |
10 | println!("{:?}", i); | |
11 | } | |
12 | }); | |
13 | primes_w.push(7); | |
14 | drop(primes_w); | |
15 | handle.join(); | |
16 | - | } |
16 | + | } |
17 | ||
18 | /* | |
19 | error[E0277]: the trait bound `&std::sync::RwLockReadGuard<'_, std::vec::Vec<{integer}>>: std::iter::Iterator` is not satisfied | |
20 | --> test.rs:9:3 | |
21 | | | |
22 | 9 | for i in &primes_r { | |
23 | | ___^ starting here... | |
24 | 10 | | println!("{:?}", i); | |
25 | 11 | | } | |
26 | | |___^ ...ending here: the trait `std::iter::Iterator` is not implemented for `&std::sync::RwLockReadGuard<'_, std::vec::Vec<{integer}>>` | |
27 | | | |
28 | = note: `&std::sync::RwLockReadGuard<'_, std::vec::Vec<{integer}>>` is not an iterator; maybe try calling `.iter()` or a similar method | |
29 | = note: required by `std::iter::IntoIterator::into_iter` | |
30 | ||
31 | error: aborting due to previous error | |
32 | */ |