summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/HalKernelMain.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/HALKit/AMD64/HalKernelMain.cc')
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index ce8c1245..60d05e11 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -98,8 +98,23 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept
idt_loader.Load(idt_reg);
+ auto constexpr kSchedTeamSwitchMS = 200U; /// @brief Team switch time in milliseconds.
+
+ Kernel::HardwareTimer timer(rtl_ms(kSchedTeamSwitchMS));
+
+ SizeT i = 0U;
+
while (YES)
{
- ;
+ timer.Wait();
+
+ UserProcessScheduler::The().SwitchTeam(kTeams[i]);
+
+ ++i;
+
+ if (i > kSchedTeamCount)
+ {
+ i = 0U;
+ }
}
}