zephyr/kernel
Andy Ross 96ccc46e03 kernel/sched: Put k_thread_start() under a single lock
Similar to the suspend refactoring earlier, this really nees to be
done in an atomic block.  There were two confirmable races here,
though it's not completely clear either was being hit in practice:

1. The bit operations in z_mark_thread_as_started() aren't atomic so
   it needs to be protected.

2. The intermediate state in z_ready_thread() could result in a dead
   or suspended thread being added to the ready queue if another
   context tried a simultaneous abort or suspend.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-02-03 09:31:56 -05:00
..
include kernel/sched: Put k_thread_start() under a single lock 2020-02-03 09:31:56 -05:00
atomic_c.c
CMakeLists.txt cmake: Add target for generating header files 2020-01-29 11:44:57 -06:00
compiler_stack_protect.c
device.c kernel: device: Add const qualifier to device_config 2020-01-22 06:32:36 -06:00
errno.c
fatal.c
futex.c
idle.c
init.c coverage: do not dump coverage data by default 2020-01-30 16:04:03 -05:00
Kconfig
Kconfig.power_mgmt
mailbox.c
mem_domain.c
mem_slab.c
mempool.c mempool: use k_malloc heap for ISR allocations 2020-01-24 09:27:59 -08:00
msg_q.c
mutex.c
pipes.c
poll.c
queue.c
sched.c kernel/sched: Put k_thread_start() under a single lock 2020-02-03 09:31:56 -05:00
sem.c kernel/sem: Fix SMP race 2020-02-03 09:31:56 -05:00
smp.c
stack.c
system_work_q.c
thread_abort.c
thread.c kernel/sched: Put k_thread_start() under a single lock 2020-02-03 09:31:56 -05:00
timeout.c
timer.c
userspace_handler.c
userspace.c
version.c
work_q.c