zephyr/arch
Andy Ross 6fb6d3cfbe kernel: Add new k_thread_abort()/k_thread_join()
Add a newer, much smaller and simpler implementation of abort and
join.  No need to involve the idle thread.  No need for a special code
path for self-abort.  Joining a thread and waiting for an aborting one
to terminate elsewhere share an implementation.  All work in both
calls happens under a single locked path with no unexpected
synchronization points.

This fixes a bug with the current implementation where the action of
z_sched_single_abort() was nonatomic, releasing the lock internally at
a point where the thread to be aborted could self-abort and confuse
the state such that it failed to abort at all.

Note that the arm32 and native_posix architectures, which have their
own thread abort implementations, now see a much simplified
"z_thread_abort()" internal API.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-02-24 16:39:15 -05:00
..
arc arch: arc: fix mpu version number 2021-02-24 08:57:35 -05:00
arm kernel: Add new k_thread_abort()/k_thread_join() 2021-02-24 16:39:15 -05:00
common gen_isr_tables: Added check of the IRQ num before accessing the vt 2021-01-24 10:12:54 -05:00
nios2 kernel: Cleanup logger setup in kernel files 2020-11-27 09:56:34 -05:00
posix kernel: Add new k_thread_abort()/k_thread_join() 2021-02-24 16:39:15 -05:00
riscv arch: riscv: Update the description of CONFIG_PMP_STACK_GUARD_MIN_SIZE 2021-02-24 10:37:03 -05:00
sparc Revert "lib/os/heap: introduce option to force big heap mode" 2021-02-19 07:32:22 -05:00
x86 kernel: Add new k_thread_abort()/k_thread_join() 2021-02-24 16:39:15 -05:00
xtensa soc/intel_adsp: Move KERNEL_COHERENCE to cavs15 2021-02-11 14:47:40 -05:00
CMakeLists.txt cmake: fix include directories to work with out-of-tree arch 2020-08-05 08:06:07 -04:00
Kconfig x86: allow linking in virtual address space 2021-02-22 14:55:28 -05:00