diff options
Diffstat (limited to 'src/proc/sched.rs')
| -rw-r--r-- | src/proc/sched.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/proc/sched.rs b/src/proc/sched.rs new file mode 100644 index 0000000..8e86c7f --- /dev/null +++ b/src/proc/sched.rs @@ -0,0 +1,17 @@ +use crate::proc::task::*; +use alloc::collections::linked_list::LinkedList; +// TODO the lifetime here is pretty much broken. Fix this later +pub struct Scheduler<'a> { + run_list: LinkedList<&'a Task>, +} + +impl<'a> Scheduler<'a> { + #[inline] + pub fn pop_front(&mut self) -> Option<&Task> { + self.run_list.pop_front() + } + #[inline] + pub fn push_back(&mut self, t: &'a Task) { + self.run_list.push_back(t); + } +} |
