[ktime] quality: remove recursion on hrtimer (#9110)

[ktime] feat: remove recursion on hrtimer

Replace recursive algorithm with a loop in hrtimer
when determining next timeout event and setup hr timer.

Signed-off-by: Shell <smokewood@qq.com>
This commit is contained in:
Shell 2024-06-28 00:22:06 +08:00 committed by GitHub
parent b79d5013ff
commit 3d8c27bcc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 9 deletions

View File

@ -146,7 +146,11 @@ static void _set_next_timeout_locked(void)
{
rt_ktime_hrtimer_t timer;
rt_ubase_t next_timeout_hrtimer_cnt;
rt_bool_t find_next;
do
{
find_next = RT_FALSE;
if ((timer = _first_hrtimer()) != RT_NULL)
{
next_timeout_hrtimer_cnt = _cnt_convert(timer->timeout_cnt);
@ -157,10 +161,12 @@ static void _set_next_timeout_locked(void)
else
{
_hrtimer_process_locked();
_set_next_timeout_locked();
find_next = RT_TRUE;
}
}
}
while (find_next);
}
void rt_ktime_hrtimer_process(void)
{