Crates.io | coroutine-rs |
lib.rs | coroutine-rs |
version | 0.0.1 |
source | src |
created_at | 2015-04-13 08:06:00.291996 |
updated_at | 2015-12-11 23:58:10.571132 |
description | Coroutine Library in Rust |
homepage | https://github.com/rustcc/coroutine-rs |
repository | https://github.com/rustcc/coroutine-rs |
max_upload_size | |
id | 1857 |
size | 92,280 |
Coroutine library in Rust
[dependencies.coroutine-rs]
git = "https://github.com/rustcc/coroutine-rs.git"
Basic usage of Coroutine
extern crate coroutine;
use coroutine::coroutine::{spawn, sched};
fn main() {
// Spawn a new coroutine
let coro = spawn(move|| {
println!("Hello in coroutine!");
// Yield back to it's parent
sched();
println!("We are back!!");
// Spawn a new coroutine
spawn(move|| {
println!("Hello inside");
}).join().unwrap();
println!("Good bye");
});
coro.resume().unwrap();
println!("We are here!");
// Resume the coroutine
coro.resume().unwrap();
println!("Back to main.");
}
Basic single threaded coroutine support
Clonable coroutine handle
Thread-safe: can only resume a coroutine in one thread simultaneously
Multithreaded scheduler with work stealing feature
Asynchronous I/O supports