Check whether all tasks are finished in run_until_idle()
[dependencies] executor = "0.6"
#![no_std]
alloc
A web assembly example
#[no_mangle] #[executor::entry] pub fn main() { console_log("Hello"); set_timeout(1000).await; console_log("World!"); } fn set_timeout(milliseconds:u32) -> TimeoutFuture { // create a timeout future and store globally } #[no_mangle] pub fn timeout_complete() -> () { // find your timeout future and wake it's waker }
Want to use async-std?
use async_std::task::sleep; use std::time::Duration; #[executor::main] async fn main() { println!("hello"); sleep(Duration::from_secs(1)).await; println!("world!"); }
Write your own with this trait
pub trait GlobalExecutor { fn spawn(&mut self, future: Box<dyn Future<Output = ()> + 'static + Send + Unpin>); }
executor::set_global_executor(MY_EXECUTOR);
This project is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in executor by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
executor
An async/await executor for Rust
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
executor
Features
#![no_std]
+alloc
Example
A web assembly example
async-std
Want to use async-std?
Want to replace the global executor?
Write your own with this trait
License
This project is licensed under either of
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in
executor
by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.