mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-17 02:23:49 +01:00
ztimer's machinery depends on figuring out if a timer is currently set or not. It does that using _is_set(), which is also exposed as ztimer_is_set(). Now when a timer expired and got taken of the timer queue using _now_next(), the `next` pointer wasn't unset. This caused _is_set() to wrongly return `true` for that timer. Internally in ztimer, this didn't cause breakage, just an unnecessary iteration of the timer queue by _delete_timer_from_list(). But this also broke the public ztimer_is_set(). This commit fixes the issue by correctly NULLing the timer's `next` pointer when the timer triggers.