Reorganize the codebase

This commit is contained in:
Jianfeng Jiang
2023-04-09 23:12:42 -04:00
committed by Tate, Hongliang Tian
parent 888853a6de
commit 271a16d492
416 changed files with 67 additions and 53 deletions

View File

@ -0,0 +1,32 @@
use crate::prelude::*;
use jinux_frame::task::{set_scheduler, Scheduler, Task, TaskAdapter};
use intrusive_collections::LinkedList;
pub struct FifoScheduler {
tasks: Mutex<LinkedList<TaskAdapter>>,
}
impl FifoScheduler {
pub fn new() -> Self {
Self {
tasks: Mutex::new(LinkedList::new(TaskAdapter::new())),
}
}
}
impl Scheduler for FifoScheduler {
fn enqueue(&self, task: Arc<Task>) {
self.tasks.lock().push_back(task.clone());
}
fn dequeue(&self) -> Option<Arc<Task>> {
self.tasks.lock().pop_front()
}
}
pub fn init() {
let fifo_scheduler = Box::new(FifoScheduler::new());
let scheduler = Box::<FifoScheduler>::leak(fifo_scheduler);
set_scheduler(scheduler);
}