2个版本
使用旧的Rust 2015
| 0.1.1 | 2017年1月30日 |
|---|---|
| 0.1.0 | 2017年1月6日 |
#1655 在 异步
79 每月下载量
在 6 crate 中使用
9KB
56 行
Tokio Easy Loop
| 状态 | 测试版 |
|---|---|
| 文档 | http://docs.rs/tk-easyloop/ |
围绕tokio的主循环包装器,提供线程局部循环,
- 避免在每个函数中填充处理到
- 大部分避免了常见的错误线程 'foo' 发生恐慌: '没有正在运行的Task',通过为所有涉及futures的代码提供方便的 run 函数
示例
extern crate futures;
extern crate tk_easyloop;
use std::time::Duration;
use tk_easyloop::{run, timeout};
fn main() {
run(|| {
// should return some future, let's use a timeout
timeout(Duration::new(1, 0))
}).unwrap();
}
多线程示例
此crate使用线程局部存储来存储循环,但这并不意味着多线程不起作用。也可以使用多个线程。
extern crate tk_easyloop;
use std::thread;
use std::time::Duration;
use tk_easyloop::{run, timeout};
fn main() {
let mut threads = Vec::new();
for thread_no in 0..10 {
threads.push(thread::spawn(move || {
run(|| {
timeout(Duration::new(1, 0))
})
}))
}
for t in threads {
t.join().unwrap().unwrap();
}
}
见examples/multi-threaded.rs更多示例。
许可
根据以下任一许可授权:
- Apache License,版本2.0,(./LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(./LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT),由您选择。
贡献
除非您明确声明,否则您有意提交以包含在作品中并由您定义的Apache-2.0许可证中的任何贡献,均应按上述方式双重许可,而无需任何额外的条款或条件。
依赖项
~6MB
~93K SLoC