mco 0.1.48

Rust Coroutine Library like go
Documentation
use mco::co;
use mco::std::sync::{SyncVec, WaitGroup};
use std::ops::Deref;
use std::sync::Arc;

pub fn main() {
    let vec = Arc::new(SyncVec::new());
    let wg = WaitGroup::new();

    for i in 0..100 {
        let m = vec.clone();
        let wg = wg.clone();

        co!(move || {
            m.push(i);
            if i == 100 {
                drop(wg);
            }
        });
    }

    wg.wait();
    for v in vec.deref() {
        println!("{}", v);
    }
}