diff options
author | Damien Zammit <damien@zamaudio.com> | 2023-08-11 08:34:53 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-08-13 00:42:21 +0200 |
commit | 8ff5ff4001e2f6c2361f452db6f7f468ea3a84b9 (patch) | |
tree | 526583a78dc9672d131e598a0767688e710a6201 /kern | |
parent | 18c0d15c5b63fc2345c63a78f5586ff47eda706f (diff) | |
download | gnumach-8ff5ff4001e2f6c2361f452db6f7f468ea3a84b9.tar.gz gnumach-8ff5ff4001e2f6c2361f452db6f7f468ea3a84b9.tar.bz2 gnumach-8ff5ff4001e2f6c2361f452db6f7f468ea3a84b9.zip |
kern/sched_prim: Cause ast on cpu coming out of idle
Message-Id: <20230811083424.2154350-3-damien@zamaudio.com>
Diffstat (limited to 'kern')
-rw-r--r-- | kern/sched_prim.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kern/sched_prim.c b/kern/sched_prim.c index 0cd4ce59..be34e7dd 100644 --- a/kern/sched_prim.c +++ b/kern/sched_prim.c @@ -1281,6 +1281,8 @@ void thread_setrun( processor->state = PROCESSOR_DISPATCHING; simple_unlock(&pset->idle_lock); processor_unlock(processor); + if (processor != current_processor()) + cause_ast_check(processor); return; } simple_unlock(&pset->idle_lock); @@ -1298,6 +1300,8 @@ void thread_setrun( processor->next_thread = th; processor->state = PROCESSOR_DISPATCHING; simple_unlock(&pset->idle_lock); + if (processor != current_processor()) + cause_ast_check(processor); return; } simple_unlock(&pset->idle_lock); @@ -1336,6 +1340,8 @@ void thread_setrun( processor->state = PROCESSOR_DISPATCHING; simple_unlock(&pset->idle_lock); processor_unlock(processor); + if (processor != current_processor()) + cause_ast_check(processor); return; } simple_unlock(&pset->idle_lock); |