mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-15 01:45:22 +00:00
On SMP, there was a bug where the logic that re-adds _current to the run queue at swap time would accidentally reschedule threads that had just gone to sleep, because the is_thread_prevented_from_running() predicate only tests for threads that are "suspended" or "pending" and not sleeping. Overload _THREAD_SUSPENDED to indicate "sleeping" also. Simple fix for an immediate bug, though long term we really want to unify all the blocked conditions to prevent this kind of state bug. Signed-off-by: Andy Ross <andrew.j.ross@intel.com> |
||
---|---|---|
.. | ||
include | ||
atomic_c.c | ||
CMakeLists.txt | ||
compiler_stack_protect.c | ||
device.c | ||
errno.c | ||
idle.c | ||
init.c | ||
int_latency_bench.c | ||
Kconfig | ||
Kconfig.power_mgmt | ||
mailbox.c | ||
mem_domain.c | ||
mem_slab.c | ||
mempool.c | ||
msg_q.c | ||
mutex.c | ||
pipes.c | ||
poll.c | ||
queue.c | ||
sched.c | ||
sem.c | ||
smp.c | ||
stack.c | ||
system_work_q.c | ||
thread_abort.c | ||
thread.c | ||
timeout.c | ||
timer.c | ||
userspace_handler.c | ||
userspace.c | ||
version.c | ||
work_q.c |