exo_task/
lib.rs

1#![cfg_attr(not(feature = "std"), no_std)]
2
3/*!
4# Introduction
5
6A lightweight async task executor library for bare metal (or any) systems.
7 
8This crate provides implementations for:
9- Task management and unique task identification
10- A simple FIFO-based executor for basic async operations
11- A more sophisticated executor with proper waking mechanisms
12
13The crate is `no_std` compatible and uses the `alloc` crate for heap allocations.
14
15# Features
16* **x86_64** -
17  When enabled, this will cause `exo_task` to use the x86_64 specific features.
18  Currently, enabling this feature will allow `Executor::sleep_if_idle` to disable
19  interrupts and halt the CPU when there are no tasks to process.
20* **std** -
21  When enabled, this will cause `exo_task` to use the standard library.
22  This is enabled by default but can be disabled with `default-features = false,`
23  in your`Cargo.toml`.
24*/
25
26extern crate alloc;
27
28/// Core task types and traits for representing async computations
29pub mod task;
30
31/// Advanced executor implementation with proper waking support and task caching
32pub mod executor;
33
34/// Basic FIFO-based executor implementation for simple async operations
35pub mod simple_executor;