#coroutine #cheap #libc #context #routines #flush #klo

klo-routines

Rust 基于libc::*context的轻量级协程

1 个不稳定版本

0.1.0 2021年7月15日

#6 in #flush

MIT/Apache

7KB
159 行代码(不含注释)

klo-routines

Rust 基于libc::*context的轻量级协程

示例

use klo_routines::{flush, KloRoutine};

fn main() {
    let mut cnt = 0;
    let mut func = || {
        for _ in 0..16 {
            flush(cnt);
            cnt += 1;
        }
    };

    let mut klo = KloRoutine::new(&mut func);
    while let Some(n) = klo.resume() {
        println!("{}", n);
    }
    
    // or you can use it as iterator
    // for n in &mut klo {
    //     println!("{}", n);
    // }
}

许可协议

本库受Apache 许可证2.0版MIT 许可证许可,您可选择其一。
除非您明确声明,否则您有意提交到本crate的任何贡献,根据Apache-2.0许可证的定义,都将如上双许可,无任何额外条款或条件。

依赖项

~43KB