summaryrefslogtreecommitdiffstats
path: root/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/book/listings/ch16-fearless-concurrency/listing-16-03')
-rw-r--r--src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.lock6
-rw-r--r--src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.toml6
-rw-r--r--src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/output.txt25
-rw-r--r--src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/src/main.rs11
4 files changed, 48 insertions, 0 deletions
diff --git a/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.lock b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.lock
new file mode 100644
index 000000000..8ecc3ae17
--- /dev/null
+++ b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.lock
@@ -0,0 +1,6 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "threads"
+version = "0.1.0"
+
diff --git a/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.toml b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.toml
new file mode 100644
index 000000000..bd4edf762
--- /dev/null
+++ b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "threads"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
diff --git a/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/output.txt b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/output.txt
new file mode 100644
index 000000000..321bf59d7
--- /dev/null
+++ b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/output.txt
@@ -0,0 +1,25 @@
+$ cargo run
+ Compiling threads v0.1.0 (file:///projects/threads)
+error[E0373]: closure may outlive the current function, but it borrows `v`, which is owned by the current function
+ --> src/main.rs:6:32
+ |
+6 | let handle = thread::spawn(|| {
+ | ^^ may outlive borrowed value `v`
+7 | println!("Here's a vector: {:?}", v);
+ | - `v` is borrowed here
+ |
+note: function requires argument type to outlive `'static`
+ --> src/main.rs:6:18
+ |
+6 | let handle = thread::spawn(|| {
+ | __________________^
+7 | | println!("Here's a vector: {:?}", v);
+8 | | });
+ | |______^
+help: to force the closure to take ownership of `v` (and any other referenced variables), use the `move` keyword
+ |
+6 | let handle = thread::spawn(move || {
+ | ++++
+
+For more information about this error, try `rustc --explain E0373`.
+error: could not compile `threads` due to previous error
diff --git a/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/src/main.rs b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/src/main.rs
new file mode 100644
index 000000000..defc87648
--- /dev/null
+++ b/src/doc/book/listings/ch16-fearless-concurrency/listing-16-03/src/main.rs
@@ -0,0 +1,11 @@
+use std::thread;
+
+fn main() {
+ let v = vec![1, 2, 3];
+
+ let handle = thread::spawn(|| {
+ println!("Here's a vector: {:?}", v);
+ });
+
+ handle.join().unwrap();
+}