1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
//! # Rust Stackful Coroutine Library //! //! May is a high performance stackful coroutine library that can be thought of rust version `goroutine`. //! You can use it easily to design and develop massive concurrent programs in Rust. //! //! ## Features //! //! * Stackful coroutine implementation based on stackful `generator` //! * Support schedule on configurable number of threads for multi-cores //! * Support coroutine version local storage //! * Support efficient network async IO //! * Support efficient timer management //! * Support standard sync primitives plus semaphore, mpmc channel etc. //! * Support cancellation of coroutines //! * Support graceful panic handling that will not affect other coroutines //! * Support scoped coroutine creation //! * Support general select for all the coroutine APIs //! * All the coroutine APIs are compatible with std library semantics //! * All the coroutine APIs can be safely called in thread context //! // #![deny(missing_docs)] #![cfg_attr(nightly, feature(specialization))] #![cfg_attr(nightly, feature(core_intrinsics))] #[macro_use] #[doc(hidden)] extern crate log; #[doc(hidden)] extern crate net2; // windows platform not use this crate #[doc(hidden)] extern crate crossbeam; #[doc(hidden)] extern crate generator; #[doc(hidden)] extern crate may_queue; #[allow(unused_extern_crates)] #[doc(hidden)] extern crate smallvec; mod io; mod join; mod park; mod pool; mod local; mod sleep; mod cancel; mod config; #[macro_use] mod macros; mod scoped; mod scheduler; mod yield_now; mod timeout_list; mod coroutine_impl; pub mod net; pub mod sync; pub mod cqueue; pub mod coroutine; pub use local::LocalKey; pub use config::{config, Config};