2021-01-02 22:03:21 +11:00
|
|
|
error[E0373]: async block may outlive the current function, but it borrows `room_ref`, which is owned by the current function
|
|
|
|
|
--> $DIR/issue-78938-async-block.rs:8:39
|
|
|
|
|
|
|
|
|
|
|
LL | let gameloop_handle = spawn(async {
|
|
|
|
|
| _______________________________________^
|
|
|
|
|
LL | | game_loop(Arc::clone(&room_ref))
|
|
|
|
|
| | -------- `room_ref` is borrowed here
|
|
|
|
|
LL | | });
|
|
|
|
|
| |_____^ may outlive borrowed value `room_ref`
|
|
|
|
|
|
|
2021-01-09 19:46:19 +11:00
|
|
|
= note: async blocks are not executed immediately and either must take a reference or ownership of outside variables they use
|
2021-01-03 03:53:50 +11:00
|
|
|
= help: see https://rust-lang.github.io/async-book/03_async_await/01_chapter.html#awaiting-on-a-multithreaded-executor for more information
|
2021-01-02 22:03:21 +11:00
|
|
|
help: to force the async block to take ownership of `room_ref` (and any other referenced variables), use the `move` keyword
|
|
|
|
|
|
|
|
|
|
|
LL | let gameloop_handle = spawn(async move {
|
|
|
|
|
LL | game_loop(Arc::clone(&room_ref))
|
|
|
|
|
LL | });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
error: aborting due to previous error
|
|
|
|
|
|
|
|
|
|
For more information about this error, try `rustc --explain E0373`.
|