futures cannot be sent safely

#Rust

なぜかしょっちゅう勘違いしてしまうのだが、 “future cannot be sent between threads safely” は一般論を述べているわけではない。”This future cannot be sent…“と読み替えればいい。その理由は下の help: 以降にかかれている。この場合だと、rcl_clock_s がSendを実装していないのがよくない。

error: future cannot be sent between threads safely
   --> tests/async_actions.rs:111:50
    |
111 |           let task_server = async_std::task::spawn(async_std::future::timeout(
    |  __________________________________________________^
112 | |             Duration::from_secs(3),
113 | |             run_server(server),
114 | |         ));
    | |_________^ future is not `Send`
    |
    = help: within `rcl::humble::rcl_clock_s`, the trait `std::marker::Send` is not implemented for `*mut c_void

Backlinks

There are no notes linking to this note.