zephyr/kernel
Andy Ross 4521e0c111 kernel/sched: Mark sleeping threads suspended
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>
2019-03-23 19:28:15 -04:00
..
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