more refactor, not quite done.
This commit is contained in:
@@ -45,6 +45,8 @@ cfg_if! {
|
||||
pub use core::sync::atomic::{Ordering, AtomicBool};
|
||||
pub use alloc::sync::{Arc, Weak};
|
||||
pub use core::ops::{FnOnce, FnMut, Fn};
|
||||
pub use async_lock::Mutex as AsyncMutex;
|
||||
pub use async_lock::MutexGuard as AsyncMutexGuard;
|
||||
pub use no_std_net::{ SocketAddr, SocketAddrV4, SocketAddrV6, ToSocketAddrs, IpAddr, Ipv4Addr, Ipv6Addr };
|
||||
pub type SystemPinBoxFuture<T> = PinBox<dyn Future<Output = T> + 'static>;
|
||||
pub type SystemPinBoxFutureLifetime<'a, T> = PinBox<dyn Future<Output = T> + 'a>;
|
||||
@@ -65,6 +67,8 @@ cfg_if! {
|
||||
pub use std::ops::{FnOnce, FnMut, Fn};
|
||||
pub use async_std::future::Future;
|
||||
pub use async_std::pin::Pin;
|
||||
pub use async_std::sync::Mutex as AsyncMutex;
|
||||
pub use async_std::sync::MutexGuard as AsyncMutexGuard;
|
||||
pub use std::net::{ SocketAddr, SocketAddrV4, SocketAddrV6, ToSocketAddrs, IpAddr, Ipv4Addr, Ipv6Addr };
|
||||
pub type SystemPinBoxFuture<T> = PinBox<dyn Future<Output = T> + Send + 'static>;
|
||||
pub type SystemPinBoxFutureLifetime<'a, T> = PinBox<dyn Future<Output = T> + Send + 'a>;
|
||||
|
@@ -13,6 +13,8 @@ where
|
||||
join_handle: Option<JoinHandle<T>>,
|
||||
}
|
||||
|
||||
/// Spawns a single background processing task idempotently, possibly returning the return value of the previously executed background task
|
||||
/// This does not queue, just ensures that no more than a single copy of the task is running at a time, but allowing tasks to be retriggered
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct SingleFuture<T>
|
||||
where
|
||||
|
@@ -13,6 +13,9 @@ cfg_if! {
|
||||
}
|
||||
}
|
||||
|
||||
/// Runs a single-future background processing task, attempting to run it once every 'tick period' microseconds.
|
||||
/// If the prior tick is still running, it will allow it to finish, and do another tick when the timer comes around again.
|
||||
/// One should attempt to make tasks short-lived things that run in less than the tick period if you want things to happen with regular periodicity.
|
||||
pub struct TickTask {
|
||||
last_timestamp_us: AtomicU64,
|
||||
tick_period_us: u64,
|
||||
|
Reference in New Issue
Block a user