error[E0382]: use of moved value: `state` --> $DIR/issue-101119.rs:7:14 | LL | fn fill_memory_blocks_mt(state: &mut State) { | ----- move occurs because `state` has type `&mut State`, which does not implement the `Copy` trait LL | loop { | ---- inside of this loop LL | once(move || { | ^^^^^^^ value moved into closure here, in previous iteration of loop LL | LL | fill_segment(state); | ----- use occurs due to use in closure | note: consider changing this parameter type in function `fill_segment` to borrow instead if owning the value isn't necessary --> $DIR/issue-101119.rs:14:20 | LL | fn fill_segment(_: &mut State) {} | ------------ ^^^^^^^^^^ this parameter takes ownership of the value | | | in this function error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0382`.