Crate axsched

Source
Expand description

§axsched

Crates.io Docs.rs CI

Various scheduler algorithms in a unified interface.

Currently supported algorithms:

§Example

use std::sync::Arc;
use axsched::{FifoScheduler, FifoTask, BaseScheduler};

let mut scheduler = FifoScheduler::new();
scheduler.init();

for i in 0..10 {
    let task = FifoTask::new(i);
    scheduler.add_task(Arc::new(task));
}

for i in 0..10 {
    let next = scheduler.pick_next_task().unwrap();
    let task_id = *next.inner();
    println!("Task {task_id} is running...");
    assert_eq!(task_id, i);
    scheduler.put_prev_task(next, false);
}

Structs§

CFSTask
task for CFS
CFScheduler
A simple Completely Fair Scheduler (CFS).
FifoScheduler
A simple FIFO (First-In-First-Out) cooperative scheduler.
FifoTask
A task wrapper for the FifoScheduler.
RRScheduler
A simple Round-Robin (RR) preemptive scheduler.
RRTask
A task wrapper for the RRScheduler.

Traits§

BaseScheduler
The base scheduler trait that all schedulers should implement.