zephyr/kernel/nanokernel
Allan Stephens 6ac33f2b9f kernel: Introduce sys_thread_busy_wait() API
Provides a way for a fiber or task to busy wait for a specified
period of time. This is useful in situations where a delay needs
to be performed without switching execution to another context,
such as:

1) It would take longer to switch to another context and then switch
   back again than to simply busy wait.

2) A delay is required by the kernel's main task (i.e. the nanokernel's
   background task or the microkernel's idle task). This task is not
   allowed to voluntarily relinquish the CPU because this would leave
   the kernel with nothing to execute in its place.

Change-Id: Icbe28613014f659e9528893ae58f7b8008c18a61
Original-work-by: Jeff Blais <jeff.blais@windriver.com>
Further-adapted-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:24:28 -05:00
..
include clarify use of term 'context' 2016-02-05 20:15:27 -05:00
Kconfig kernel: kconfig: remove dependencies on EXPERIMENTAL 2016-02-05 20:24:20 -05:00
Makefile nanokernel: add optional ring buffer data type 2016-02-05 20:15:34 -05:00
compiler_stack_protect.c doxygen: add @brief and capitalize 2016-02-05 20:14:33 -05:00
ctors.c Update comments in ctors.c 2016-02-05 20:14:39 -05:00
device.c doxygen: change comment style to match javadoc 2016-02-05 20:14:33 -05:00
event_logger.c profiler: use new ring buffer data structure 2016-02-05 20:15:34 -05:00
idle.c doxygen: add @brief and capitalize 2016-02-05 20:14:33 -05:00
int_latency_bench.c sys_clock: rename timer_read to _sys_clock_cycle_get 2016-02-05 20:15:27 -05:00
nano_context.c kernel: Introduce sys_thread_busy_wait() API 2016-02-05 20:24:28 -05:00
nano_fiber.c fiber: remove fiber from thread list when cancelling delayed start 2016-02-05 20:15:36 -05:00
nano_fifo.c clarify use of term 'context' 2016-02-05 20:15:27 -05:00
nano_init.c kernel: Eliminate use of main() in microkernel 2016-02-05 20:24:21 -05:00
nano_lifo.c clarify use of term 'context' 2016-02-05 20:15:27 -05:00
nano_sema.c clarify use of term 'context' 2016-02-05 20:15:27 -05:00
nano_stack.c doxygen: nanokernel doxygenation 2016-02-05 20:15:34 -05:00
nano_sys_clock.c doxygen: nanokernel doxygenation 2016-02-05 20:15:34 -05:00
nano_timer.c doxygen: nanokernel doxygenation 2016-02-05 20:15:34 -05:00
profiler.c profiler: use new ring buffer data structure 2016-02-05 20:15:34 -05:00
ring_buffer.c nanokernel: add optional ring buffer data type 2016-02-05 20:15:34 -05:00
version.c typo: decribed -> described 2016-02-05 20:15:34 -05:00