zephyr/kernel/include
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
..
gen_offset.h aarch64: Use absolute symbols for the callee saved registers 2020-11-17 18:59:23 -05:00
kernel_arch_interface.h include/kernel_arch_interface.h: Redocument arch_switch() 2021-02-14 16:22:45 -05:00
kernel_internal.h kernel: Add new k_thread_abort()/k_thread_join() 2021-02-24 16:39:15 -05:00
kernel_offsets.h device: add post-process of elf file to manage device handles 2021-02-19 15:46:16 -05:00
kernel_tls.h kernel: tls: align tdata/tbss sections in stack 2021-02-07 23:28:43 -05:00
ksched.h kernel: Add new k_thread_abort()/k_thread_join() 2021-02-24 16:39:15 -05:00
kswap.h kernel/sched: Adjust locking in z_swap() 2021-02-24 16:39:15 -05:00
mmu.h kernel: add CONFIG_SRAM_OFFSET 2021-02-22 14:55:28 -05:00
offsets_short.h kernel: add common bits to support TLS 2020-10-24 10:52:00 -07:00