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 或 http://opensource.org/licenses/MIT),由您选择。
贡献
除非您明确声明,否则您有意提交以包含在作品中并由您定义的Apache-2.0许可证中的任何贡献,均应按上述方式双重许可,而无需任何额外的条款或条件。
依赖项
~6MB
~93K SLoC