Crates.io | greenthread-future |
lib.rs | greenthread-future |
version | 0.1.0 |
source | src |
created_at | 2020-02-02 07:48:46.137216 |
updated_at | 2020-02-02 07:48:46.137216 |
description | Convert closures to futures based on greenthread on bare-metal (no_std + no_alloc). |
homepage | https://github.com/wangrunji0408/greenthread-future-rs |
repository | https://github.com/wangrunji0408/greenthread-future-rs |
max_upload_size | |
id | 204159 |
size | 56,242 |
Convert closures into futures based on greenthread on bare-metal (no_std + no_alloc).
In a word, this is a #![no_std]
version of Futurify.
I'm exploring to use it to implement bare-metal threading.
TODO.
Now just take a unit test as an example:
#[tokio::test]
async fn test() {
let h1 = tokio::spawn(ThreadFuture::from(|| {
println!("1.1");
yield_now();
println!("1.2");
1u32
}));
let h2 = tokio::spawn(ThreadFuture::from(|| {
println!("2.1");
yield_now();
println!("2.2");
2u32
}));
println!("join 1 => {}", h1.await.unwrap());
println!("join 2 => {}", h2.await.unwrap());
}
Output:
1.1
2.1
1.2
2.2
join 1 => 1
join 2 => 2