mco 0.1.48

Rust Coroutine Library like go
Documentation
use mco::std::sync::{SyncHashMap, WaitGroup};
use mco::{co, sync_btree_map, sync_hash_map};
use std::ops::Deref;
use std::sync::Arc;
pub fn main() {
    //or SyncBtreeMap
    let btree = sync_btree_map! {1:1};
    let map = Arc::new(sync_hash_map! {});
    let wg = WaitGroup::new();

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

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

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