kernel: Ensure all uses of disable_count are balanced

This commit is contained in:
Liam 2022-07-11 10:13:13 -04:00
parent 77137583cd
commit a9a83fa726
3 changed files with 21 additions and 10 deletions

View file

@ -1106,6 +1106,8 @@ void KThread::IfDummyThreadTryWait() {
return;
}
ASSERT(!kernel.IsPhantomModeForSingleCore());
// Block until we are no longer waiting.
std::unique_lock lk(dummy_wait_lock);
dummy_wait_cv.wait(
@ -1211,10 +1213,12 @@ KScopedDisableDispatch::~KScopedDisableDispatch() {
}
if (GetCurrentThread(kernel).GetDisableDispatchCount() <= 1) {
auto scheduler = kernel.CurrentScheduler();
auto* scheduler = kernel.CurrentScheduler();
if (scheduler) {
if (scheduler && !kernel.IsPhantomModeForSingleCore()) {
scheduler->RescheduleCurrentCore();
} else {
KScheduler::RescheduleCurrentHLEThread(kernel);
}
} else {
GetCurrentThread(kernel).EnableDispatch();