e183671808
There is no easy way to clear event bits without the potential for a race to exist between producer(s) and consumer(s). The result of this race is that events can be lost through the various resetting mechanisms available (flag to k_event_wait(), or k_event_set()). Add k_event_set_masked() which permits bits to be set or cleared. This allows consumers to clear just the bits that they have read without (accidentally) discarding any new bits. Update unit tests to verify the functionality. Partly Fixes #46117. Signed-off-by: Andrew Jackson <andrew.jackson@amd.com> |
||
---|---|---|
.. | ||
include | ||
paging | ||
CMakeLists.txt | ||
Kconfig | ||
Kconfig.vm | ||
atomic_c.c | ||
banner.c | ||
cache_handlers.c | ||
compiler_stack_protect.c | ||
condvar.c | ||
device.c | ||
errno.c | ||
events.c | ||
fatal.c | ||
futex.c | ||
idle.c | ||
init.c | ||
kheap.c | ||
mailbox.c | ||
main_weak.c | ||
mem_domain.c | ||
mem_slab.c | ||
mempool.c | ||
mmu.c | ||
msg_q.c | ||
mutex.c | ||
pipes.c | ||
poll.c | ||
queue.c | ||
sched.c | ||
sem.c | ||
smp.c | ||
stack.c | ||
system_work_q.c | ||
thread.c | ||
timeout.c | ||
timer.c | ||
usage.c | ||
userspace.c | ||
userspace_handler.c | ||
version.c | ||
work.c | ||
xip.c |