zephyr/kernel
Andy Ross e922df5069 kernel: Allow k_thread_abort(_current) from ISRs
Traditionally k_thread_abort() of the current thread has done a
synchronous _Swap() to the new context.  Doing this from an ISR has
never worked portably (some architectures can do it, some can't) for
this reason.

But on Xtensa/asm2, exception handlers now run in interrupt context
and it's a very reasonable requirement for them to abort the excepting
thread.

So simply don't swap, but do the rest of the bookeeping, returning to
the calling context.  As a side effect it's now possible to terminate
threads from interrupts, even if they have been interrupted.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-02-16 10:44:29 -05:00
..
include kernel: SMP timer integration 2018-02-16 10:44:29 -05:00
posix
alert.c
atomic_c.c
CMakeLists.txt
compiler_stack_protect.c
device.c
errno.c
idle.c kernel: Simplified idle for SMP auxiliary CPUs 2018-02-16 10:44:29 -05:00
init.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
int_latency_bench.c
Kconfig
Kconfig.event_logger
Kconfig.power_mgmt
mailbox.c
mem_domain.c
mem_slab.c
mempool.c
msg_q.c
mutex.c
pipes.c
poll.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
queue.c
sched.c kernel: SMP-aware scheduler 2018-02-16 10:44:29 -05:00
sem.c
smp.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
stack.c
sys_clock.c kernel: SMP timer integration 2018-02-16 10:44:29 -05:00
system_work_q.c
thread_abort.c kernel: Allow k_thread_abort(_current) from ISRs 2018-02-16 10:44:29 -05:00
thread.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
timer.c
userspace_handler.c
userspace.c
version.c
work_q.c