6f13980fc7
The mutex locking was written to use k_sched_lock(), which doesn't work as a synchronization primitive if there is another CPU running (it prevents the current CPU from preempting the thread, it says nothing about what the others are doing). Use the pre-existing spinlock for all synchronization. One wrinkle is that the priority code was needing to call z_thread_priority_set(), which is a rescheduling call that cannot be called with a lock held. So that got split out with a low level utility that can update the schedule state but allow the caller to defer yielding until later. Fixes #17584 Signed-off-by: Andy Ross <andrew.j.ross@intel.com> |
||
---|---|---|
.. | ||
gen_offset.h | ||
kernel_internal.h | ||
kernel_offsets.h | ||
kernel_structs.h | ||
ksched.h | ||
kswap.h | ||
offsets_short.h | ||
syscall_handler.h | ||
timeout_q.h | ||
wait_q.h |