4 个版本
0.1.1 | 2020年4月13日 |
---|---|
0.1.0 | 2020年3月25日 |
0.0.2 | 2020年3月22日 |
0.0.1 | 2020年2月3日 |
#104 in #alloc
6KB
141 行
executor
[dependencies]
executor = "0.9.0"
特性
-
#![no_std]
+alloc
- 简单到足以学习!(~ 200 行)
- 与WebAssembly兼容
WebAssembly
use web::*;
use executor;
#[no_mangle]
fn main() {
executor::add_async(async {
loop {
set_inner_html(DOM_BODY, "⏰ tic");
sleep(1000).await;
set_inner_html(DOM_BODY, "⏰ tock");
sleep(1000).await;
}
});
while !executor::is_done() {
executor::update();
}
}
在这里查看这个示例的运行效果 这里。
命令行界面
甚至可以通过添加一些东西来停止它过早退出,使用 async-std
。
use async_std::task::sleep;
use std::time::Duration;
fn main() {
let complete = std::sync::Arc::new(core::sync::atomic::AtomicBool::new(false));
let ender = complete.clone();
executor::add_async(async move {
println!("hello");
sleep(Duration::from_secs(1)).await;
println!("world!");
ender.store(true, core::sync::atomic::Ordering::Release);
});
while !complete.load(core::sync::atomic::Ordering::Acquire) {executor::update();}
}
许可协议
本项目根据您的选择,采用以下任一许可协议:
- Apache License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交给executor
的任何贡献将根据上述方式双重许可,不附加任何额外条款或条件。
依赖
~1.5MB
~35K SLoC