zephyr/kernel/include
Andy Ross 55a7e46b66 kernel/poll: Remove POLLING thread state bit
The _THREAD_POLLING bit in thread_state was never actually a
legitimate thread "state".  It is a clever synchronization trick
introduced to allow the thread to release the irq_lock while looping
over the input event array without dropping events.

Instead, make that flag a word in the "poller" struct that lives on
the stack of the thread calling k_poll.  The disadvantage is the 4
bytes of thread space needed.  Advantages:

+ Cleaner API, it's now internal to poll instead of being globally
  visible.

+ The thread_state bit space is just one byte, and was almost full
  already.

+ Smaller code to write/test a full word and not a bitfield

+ Words are atomic, so no need for one of irq lock/unlock pairs.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-06-11 17:25:38 -04:00
..
gen_offset.h license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
kernel_internal.h kernel: handle early entropy issues 2018-05-23 19:38:06 -07:00
kernel_offsets.h kernel: SMP-aware scheduler 2018-02-16 10:44:29 -05:00
kernel_structs.h kernel/poll: Remove POLLING thread state bit 2018-06-11 17:25:38 -04:00
ksched.h kernel/poll: Remove POLLING thread state bit 2018-06-11 17:25:38 -04:00
kswap.h kernel/sched: Fix SMP scheduling 2018-05-31 14:02:03 -04:00
offsets_short.h kernel/arch: streamline thread user options 2017-01-24 13:34:50 +00:00
syscall_handler.h syscalls: remove policy from handler checks 2018-05-17 23:34:03 +03:00
timeout_q.h kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
wait_q.h kernel: Fix trivial typo in CONFIG_WAIT_Q_FAST 2018-05-23 17:57:06 -04:00