error[E0277]: `Rc<()>` cannot be sent between threads safely --> $DIR/no-send-res-ports.rs:25:19 | LL | thread::spawn(move|| { | ------------- ^----- | | | | _____|_____________within this `[closure@$DIR/no-send-res-ports.rs:25:19: 25:25]` | | | | | required by a bound introduced by this call LL | | LL | | let y = x; LL | | println!("{:?}", y); LL | | }); | |_____^ `Rc<()>` cannot be sent between threads safely | = help: within `[closure@$DIR/no-send-res-ports.rs:25:19: 25:25]`, the trait `Send` is not implemented for `Rc<()>` = note: use `std::sync::Arc` instead of `std::rc::Rc` note: required because it appears within the type `Port<()>` --> $DIR/no-send-res-ports.rs:5:8 | LL | struct Port(Rc); | ^^^^ note: required because it appears within the type `Foo` --> $DIR/no-send-res-ports.rs:9:12 | LL | struct Foo { | ^^^ note: required because it's used within this closure --> $DIR/no-send-res-ports.rs:25:19 | LL | thread::spawn(move|| { | ^^^^^^ note: required by a bound in `spawn` --> $SRC_DIR/std/src/thread/mod.rs:LL:COL error: aborting due to previous error For more information about this error, try `rustc --explain E0277`.