Implement KCriticalSection (mostly)

This commit is contained in:
TuxSH
2018-11-08 01:04:06 +01:00
committed by Michael Scire
parent 4238d2e97f
commit 0fb40d1ef5
12 changed files with 115 additions and 21 deletions

View File

@@ -341,4 +341,15 @@ void KScheduler::YieldCurrentThreadAndWaitForLoadBalancing()
cctx.GetScheduler()->DoYieldOperation(Global::YieldThreadAndWaitForLoadBalancing, *cctx.GetCurrentThread());
}
void KScheduler::HandleCriticalSectionLeave()
{
if (KScheduler::Global::reselectionRequired) {
KScheduler::Global::SelectThreads();
}
std::atomic_thread_fence(std::memory_order_seq_cst);
// TODO: check which cores needs ctx switches, sent interrupts and/or ctx switch ourselves
}
}