Please sign in to comment.
kernel: timeout: Fix macro usage in next_timeout function
The `next_timeout()` function used to call the `elapsed()` function directly in the `MAX` macro call. This caused the `elapsed()` function to be executed twice, with possible different results, if the system clock incremented its value in a meantime. As a result, the whole `MAX(0, to->dticks - elapsed()` expresion could return an incorrect value of -1, which represents the K_FOREVER timeout. This led to a stall in devices running tickless kernel (as observed on nRF52840). Signed-off-by: Robert Lubos <email@example.com>
- Loading branch information...