1 //! Tools for working with tasks. 2 3 #![no_std] 4 #![doc(test( 5 no_crate_inject, 6 attr( 7 deny(warnings, rust_2018_idioms, single_use_lifetimes), 8 allow(dead_code, unused_assignments, unused_variables) 9 ) 10 ))] 11 #![warn(missing_docs, unsafe_op_in_unsafe_fn)] 12 13 #[cfg(feature = "alloc")] 14 extern crate alloc; 15 #[cfg(feature = "std")] 16 extern crate std; 17 18 mod spawn; 19 pub use crate::spawn::{LocalSpawn, Spawn, SpawnError}; 20 21 #[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))] 22 #[cfg(feature = "alloc")] 23 mod arc_wake; 24 #[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))] 25 #[cfg(feature = "alloc")] 26 pub use crate::arc_wake::ArcWake; 27 28 #[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))] 29 #[cfg(feature = "alloc")] 30 mod waker; 31 #[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))] 32 #[cfg(feature = "alloc")] 33 pub use crate::waker::waker; 34 35 #[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))] 36 #[cfg(feature = "alloc")] 37 mod waker_ref; 38 #[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))] 39 #[cfg(feature = "alloc")] 40 pub use crate::waker_ref::{waker_ref, WakerRef}; 41 42 mod future_obj; 43 pub use crate::future_obj::{FutureObj, LocalFutureObj, UnsafeFutureObj}; 44 45 mod noop_waker; 46 pub use crate::noop_waker::noop_waker; 47 pub use crate::noop_waker::noop_waker_ref; 48 49 #[doc(no_inline)] 50 pub use core::task::{Context, Poll, RawWaker, RawWakerVTable, Waker}; 51