Expand description
ArceOS task management module.
This module provides primitives for task management, including task creation, scheduling, sleeping, termination, etc. The scheduler algorithm is configurable by cargo features.
§Cargo Features
multitask: Enable multi-task support. If it’s enabled, complex task management and scheduling is used, as well as more task-related APIs. Otherwise, only a few APIs with naive implementation is available.irq: Interrupts are enabled. If this feature is enabled, timer-based APIs can be used, such assleep,sleep_until, and [WaitQueue::wait_timeout].preempt: Enable preemptive scheduling.- FIFO cooperative scheduler is the default when no scheduler feature is selected.
sched-rr: Use the Round-robin preemptive scheduler. It also enables themultitaskandpreemptfeatures if it is enabled.sched-cfs: Use the Completely Fair Scheduler. It also enables the themultitaskandpreemptfeatures if it is enabled.host-test: Use host-safe fallbacks for unit tests.
Modules§
- sync
- Native ArceOS synchronization primitives. Native ArceOS synchronization implementation.
Functions§
- sleep
- For single-task situation, we just busy wait for the given duration.
- sleep_
until - For single-task situation, we just busy wait until reaching the given monotonic deadline.
- yield_
now - For single-task situation, we just relax the CPU and wait for incoming interrupts.