Files
banan-os/kernel/include/kernel/Scheduler.h
Bananymous 9b8de5025a All: rename every function from UpperCamelCase to snake_case
This was a mess since I didn't know which to use but now I decided
to go with snake_case :)
2023-02-01 21:05:44 +02:00

35 lines
558 B
C++

#pragma once
#include <BAN/Function.h>
#include <BAN/LinkedList.h>
#include <kernel/Thread.h>
namespace Kernel
{
class Scheduler
{
BAN_NON_COPYABLE(Scheduler);
BAN_NON_MOVABLE(Scheduler);
public:
static void Initialize();
static Scheduler& Get();
const Thread& CurrentThread() const;
void AddThread(void(*)());
void Switch();
void Start();
static constexpr size_t ms_between_switch = 4;
private:
Scheduler() {}
private:
BAN::LinkedList<Thread> m_threads;
BAN::LinkedList<Thread>::iterator m_current_iterator;
};
}