Various scheduler algorithms in a unified interface.
Currently supported algorithms:
FifoScheduler: FIFO (First-In-First-Out) scheduler (cooperative).RRScheduler: Round-robin scheduler (preemptive).CFScheduler: Completely Fair Scheduler (preemptive).
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); }