Skip to content

Commit

Permalink
Update example that uses deprecated Thread::scoped
Browse files Browse the repository at this point in the history
  • Loading branch information
shepmaster committed Mar 8, 2015
1 parent ead9ab8 commit a6ebd26
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions src/doc/intro.md
Expand Up @@ -389,11 +389,11 @@ safe concurrent programs.
Here's an example of a concurrent Rust program:
```{rust}
use std::thread::Thread;
use std::thread;
fn main() {
let guards: Vec<_> = (0..10).map(|_| {
Thread::scoped(|| {
thread::scoped(|| {
println!("Hello, world!");
})
}).collect();
Expand Down Expand Up @@ -421,13 +421,13 @@ problem.
Let's see an example. This Rust code will not compile:
```{rust,ignore}
use std::thread::Thread;
use std::thread;
fn main() {
let mut numbers = vec![1, 2, 3];
let guards: Vec<_> = (0..3).map(|i| {
Thread::scoped(move || {
thread::scoped(move || {
numbers[i] += 1;
println!("numbers[{}] is {}", i, numbers[i]);
});
Expand All @@ -439,7 +439,7 @@ It gives us this error:
```text
7:25: 10:6 error: cannot move out of captured outer variable in an `FnMut` closure
7 Thread::scoped(move || {
7 thread::scoped(move || {
8 numbers[i] += 1;
9 println!("numbers[{}] is {}", i, numbers[i]);
10 });
Expand Down Expand Up @@ -471,15 +471,15 @@ mutation doesn't cause a data race.
Here's what using an Arc with a Mutex looks like:
```{rust}
use std::thread::Thread;
use std::thread;
use std::sync::{Arc,Mutex};
fn main() {
let numbers = Arc::new(Mutex::new(vec![1, 2, 3]));
let guards: Vec<_> = (0..3).map(|i| {
let number = numbers.clone();
Thread::scoped(move || {
thread::scoped(move || {
let mut array = number.lock().unwrap();
array[i] += 1;
println!("numbers[{}] is {}", i, array[i]);
Expand Down Expand Up @@ -535,13 +535,13 @@ As an example, Rust's ownership system is _entirely_ at compile time. The
safety check that makes this an error about moved values:
```{rust,ignore}
use std::thread::Thread;
use std::thread;
fn main() {
let numbers = vec![1, 2, 3];
let guards: Vec<_> = (0..3).map(|i| {
Thread::scoped(move || {
thread::scoped(move || {
println!("{}", numbers[i]);
});
}).collect();
Expand Down

0 comments on commit a6ebd26

Please sign in to comment.