mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 06:27:45 +00:00
Kernel/aarch64: Implement Processor::check_invoke_scheduler()
This commit is contained in:
parent
f6f43fd65e
commit
993b7495ba
2 changed files with 10 additions and 1 deletions
|
@ -11,6 +11,7 @@
|
||||||
#include <Kernel/Arch/TrapFrame.h>
|
#include <Kernel/Arch/TrapFrame.h>
|
||||||
#include <Kernel/Arch/aarch64/ASM_wrapper.h>
|
#include <Kernel/Arch/aarch64/ASM_wrapper.h>
|
||||||
#include <Kernel/Arch/aarch64/CPU.h>
|
#include <Kernel/Arch/aarch64/CPU.h>
|
||||||
|
#include <Kernel/Scheduler.h>
|
||||||
#include <Kernel/Thread.h>
|
#include <Kernel/Thread.h>
|
||||||
#include <Kernel/Time/TimeManagement.h>
|
#include <Kernel/Time/TimeManagement.h>
|
||||||
|
|
||||||
|
@ -171,7 +172,14 @@ ErrorOr<Vector<FlatPtr, 32>> Processor::capture_stack_trace(Thread& thread, size
|
||||||
|
|
||||||
void Processor::check_invoke_scheduler()
|
void Processor::check_invoke_scheduler()
|
||||||
{
|
{
|
||||||
TODO_AARCH64();
|
VERIFY_INTERRUPTS_DISABLED();
|
||||||
|
VERIFY(!m_in_irq);
|
||||||
|
VERIFY(!m_in_critical);
|
||||||
|
VERIFY(&Processor::current() == this);
|
||||||
|
if (m_invoke_scheduler_async && m_scheduler_initialized) {
|
||||||
|
m_invoke_scheduler_async = false;
|
||||||
|
Scheduler::invoke_async();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -279,6 +279,7 @@ private:
|
||||||
FlatPtr m_in_irq { 0 };
|
FlatPtr m_in_irq { 0 };
|
||||||
bool m_in_scheduler { false };
|
bool m_in_scheduler { false };
|
||||||
bool m_invoke_scheduler_async { false };
|
bool m_invoke_scheduler_async { false };
|
||||||
|
bool m_scheduler_initialized { false };
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue