diff --git a/movereftest/Cargo.lock b/movereftest/Cargo.lock new file mode 100644 index 0000000..6228413 --- /dev/null +++ b/movereftest/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "movereftest" +version = "0.1.0" diff --git a/movereftest/Cargo.toml b/movereftest/Cargo.toml new file mode 100644 index 0000000..03b221f --- /dev/null +++ b/movereftest/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "movereftest" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/movereftest/README.md b/movereftest/README.md new file mode 100644 index 0000000..5722574 --- /dev/null +++ b/movereftest/README.md @@ -0,0 +1,3 @@ +# MoveRefTest + +Testing if one can move the reference withtout moving the real data. diff --git a/movereftest/src/main.rs b/movereftest/src/main.rs new file mode 100644 index 0000000..2127759 --- /dev/null +++ b/movereftest/src/main.rs @@ -0,0 +1,22 @@ +use std::thread; + +fn main() { + let concrete = String::from("Hello!"); + + let ref1 = &concrete; + let t1 = thread::spawn(move || { + for i in 0..5 { + println!("Thread1: {} - {}", i, ref1); + } + }); + + let ref2 = &concrete; + let t2 = thread::spawn(move || { + for i in 5..10 { + println!("Thread2: {} - {}", i, ref2); + } + }); + + t1.join(); + t2.join(); +}