| Crates.io | axsched |
| lib.rs | axsched |
| version | 0.3.0 |
| created_at | 2025-07-07 18:37:19.319966+00 |
| updated_at | 2025-07-07 18:37:19.319966+00 |
| description | Various scheduler algorithms in a unified interface |
| homepage | https://github.com/arceos-org/arceos |
| repository | https://github.com/arceos-org/axsched |
| max_upload_size | |
| id | 1741631 |
| size | 21,629 |
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);
}