mod pool;
mod queue;
mod retired_list;
mod scope;
mod task_batch;
mod worker;
use std::ptr::NonNull;
use std::sync::OnceLock;
pub use pool::ZeroPool;
pub use scope::Scope;
static GLOBAL_ZP: OnceLock<ZeroPool> = OnceLock::new();
#[inline]
pub fn global_pool() -> &'static ZeroPool {
GLOBAL_ZP.get_or_init(ZeroPool::new)
}
pub(crate) type TaskParamPointer = NonNull<u8>;
pub(crate) type TaskFnPointer = fn(TaskParamPointer);
#[repr(align(64))]
pub(crate) struct PaddedType<T>(pub T);
impl<T> std::ops::Deref for PaddedType<T> {
type Target = T;
fn deref(&self) -> &Self::Target {
&self.0
}
}