Replies: 1 comment
-
Any comments or thoughts? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Recently I have observed the ASSERT failure at z_add_timeout() in kernel/timeout.c file. It checks if
to->node
has already been added totimeout_list
.I think there is a race condition between ISR and a thread. If a thread is preempted by timer ISR while
k_timer_start()
is being executed, then I think it hits the case. Specifically, once the thread is preempted afterz_abort_timeout()
call, then timer ISR can executez_add_timeout()
to add a new timeout for the timer that has been just expired.From the documentation, I see that "Attempting to start a timer that is already running is permitted." However, I think this is a bug in the kernel.
Has anyone seen the same failure? Any thoughts? Should I fire a bug?
Beta Was this translation helpful? Give feedback.
All reactions