switchyard 0.3.1

Real-time compute focused async executor
Documentation
use futures_executor::block_on;
use switchyard::{
    threads::{one_to_one, thread_info},
    Switchyard,
};

#[test]
fn ten_thousand() {
    let yard = Switchyard::new(one_to_one(thread_info(), None), || ()).unwrap();

    let handles: Vec<_> = (0..10_000).map(|idx| yard.spawn(0, async move { idx * 2 })).collect();

    block_on(async {
        for (idx, handle) in handles.into_iter().enumerate() {
            assert_eq!(handle.await, idx * 2);
        }
        yard.wait_for_idle().await;
    });

    assert_eq!(yard.jobs(), 0);
}