zephyr/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
..
app_memory kernel: move thread definitions to thread.h 2021-01-13 18:18:42 -05:00
arch RISC-V: Enhancement for stack size to 16-bytes aligned at least 2021-02-24 10:37:03 -05:00
audio audio: dmic: fix compile error on arm gcc 8 2021-02-16 15:29:16 +03:00
bluetooth Bluetooth: host: Don't auto-update device name and document behavior 2021-02-23 20:08:51 +01:00
canbus subsys: canopen: Add a wrapper to avoid passing device to CO_init 2020-09-02 13:48:13 +02:00
cmsis_rtos_v1
cmsis_rtos_v2
console device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
crypto device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
data doc: fix @param usage in callbacks 2020-12-18 12:18:28 +01:00
debug debug: coredump: remove z_ prefix for stuff used outside subsys 2021-01-21 22:08:59 -05:00
devicetree devicetree: deprecate DT_PWMS_LABEL APIs 2021-02-24 13:45:46 -06:00
dfu modules: introduce MCUBOOT_BOOTUTIL module 2021-01-14 18:03:38 +01:00
disk device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
display device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
drivers drivers: spi: add helpers for initializing from DT 2021-02-23 10:34:19 -05:00
dt-bindings driver: sensor: npcx: add tachometer sensor support. 2021-02-22 17:56:19 -05:00
fs include/fs: fixed typo in fs_file_t_init() description 2021-02-05 07:32:20 -05:00
ipc ipc: RPMsg service to register multiple endpoints 2021-01-19 22:07:09 +01:00
kernel kernel: Add new k_thread_abort()/k_thread_join() 2021-02-24 16:39:15 -05:00
linker device: add post-process of elf file to manage device handles 2021-02-19 15:46:16 -05:00
logging logging: fix warnings when building with -Wunused-variable 2021-02-04 07:43:07 -05:00
lorawan lorawan: Add userspace-defined battery level callback API 2021-02-15 08:19:03 -05:00
mgmt doc: fix @param usage in callbacks 2020-12-18 12:18:28 +01:00
net net: socket send timeout option 2021-02-24 14:16:33 +02:00
posix include/posix: fix extern "C" placement 2020-10-13 10:05:30 -05:00
power power: constraints: Update constraint documentation 2021-02-15 08:08:36 -05:00
random
settings
shell shell: internal api update in shell.h 2021-01-14 12:07:25 +01:00
stats
storage storage/flash_map: Added function for get erased byte value 2020-10-30 15:53:38 +01:00
sys sys: util: Update implementation of loop macros 2021-02-23 12:35:48 +01:00
timing timing: do not repeatedly do init()/start()/stop() 2020-11-11 23:55:49 -05:00
toolchain xcc: define __INT*_C() and __UINT*_C() 2021-02-05 07:45:07 -05:00
tracing tracing: trace mutex/semaphore using dedicated calls 2020-08-24 13:21:12 +02:00
usb license: add missing SPDX headers 2021-02-11 08:05:16 -05:00
zephyr zephyr: introduce z_max_align_t 2020-11-17 11:44:16 +02:00
cache.h cache: libmetal: Redirect sys_cache_flush() 2021-01-19 14:31:02 -05:00
device.h device: fix misspelling in build-time diagnostic 2021-02-24 14:22:14 -05:00
devicetree.h devicetree: adjust some implementation details 2021-02-23 10:34:19 -05:00
ec_host_cmd.h include: remove enum build assert 2020-10-02 11:44:39 +02:00
emul.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
exc_handle.h
fatal.h
generated_dts_board.h license: add missing SPDX headers 2021-02-11 08:05:16 -05:00
init.h device: deprecate DEVICE_AND_API_INIT 2021-01-12 08:31:12 -06:00
irq_nextlevel.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
irq_offload.h irq: Change offload API to take a constant parameter 2020-09-02 13:48:13 +02:00
irq.h irq: document requirement that irq_lock/unlock provides a memory barrier 2021-01-26 13:42:17 -05:00
kernel_includes.h kernel: move thread definitions to thread.h 2021-01-13 18:18:42 -05:00
kernel_structs.h kernel: Remove abort and join implementation (UNBISECTABLE) 2021-02-24 16:39:15 -05:00
kernel_version.h
kernel.h x86: rename CONFIG_SSE* to CONFIG_X86_SSE* 2021-02-15 08:21:15 -05:00
mempool_heap.h kernel: Remove z_mem_pool wrapper internals 2020-12-07 21:50:14 -05:00
ptp_clock.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
sched_priq.h
shared_irq.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
spinlock.h kernel: fix usage of KERNEL_COHERENCE macro 2021-02-03 10:42:04 -05:00
sw_isr_table.h irq: Change dynamic API to take a constant parameter 2020-09-02 13:48:13 +02:00
sys_clock.h api: add C++ friendly version of Z_TIMEOUT_TICKS. 2021-01-20 09:23:20 -05:00
syscall_handler.h kernel: Cleanup logger setup in kernel files 2020-11-27 09:56:34 -05:00
syscall.h
timeout_q.h kernel: timer: update _timeout API for const correctness 2020-10-02 11:29:14 +02:00
toolchain.h ARC: toolchain: handle difference in macros for MWDT and ARC GNU 2020-09-05 10:22:56 -05:00
wait_q.h
zephyr.h