Thread bonk part 1: Better rescheduling maybe

This commit is contained in:
wheremyfoodat 2023-07-28 19:49:11 +03:00
parent 0ab1d6a0cc
commit 8dd5b990be
4 changed files with 48 additions and 42 deletions

View file

@ -61,6 +61,11 @@ void Kernel::serviceSVC(u32 svc) {
case 0x3D: outputDebugString(); break;
default: Helpers::panic("Unimplemented svc: %X @ %08X", svc, regs[15]); break;
}
if (needReschedule) {
needReschedule = false;
rescheduleThreads();
}
}
void Kernel::setVersion(u8 major, u8 minor) {
@ -140,6 +145,8 @@ void Kernel::reset() {
threadIndices.clear();
serviceManager.reset();
needReschedule = false;
// Allocate handle #0 to a dummy object and make a main process object
makeObject(KernelObjectType::Dummy);
currentProcess = makeProcess(1); // Use ID = 1 for main process