kernel: fix remaining _cpu() races

This commit is contained in:
Matheus
2024-09-15 18:39:59 -03:00
parent 32392573cc
commit 56d665d5a0
9 changed files with 26 additions and 18 deletions
+1 -1
View File
@@ -574,10 +574,10 @@ static void yield(context_t *context, void *) {
}
int sched_yield() {
__assert(_cpu()->ipl == IPL_NORMAL);
bool sleeping = current_thread()->flags & SCHED_THREAD_FLAGS_SLEEP;
bool old = sleeping ? current_thread()->sleepintstatus : interrupt_set(false);
arch_context_saveandcall(yield, _cpu()->schedulerstack, NULL);
__assert(_cpu()->ipl == IPL_NORMAL);
interrupt_set(old);
return sleeping ? current_thread()->wakeupreason : 0;
}