Skip to content

Commit 7205016

Browse files
committed
撤销
1 parent cbe28fa commit 7205016

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/thread.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
* 2023-09-15 xqyjlj perf rt_hw_interrupt_disable/enable
3636
* 2023-12-10 xqyjlj fix thread_exit/detach/delete
3737
* fix rt_thread_delay
38-
* 2025-06-01 htl5241 fix timer overflow
3938
*/
4039

4140
#include <rthw.h>
@@ -693,6 +692,7 @@ RTM_EXPORT(rt_thread_delay);
693692
rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick)
694693
{
695694
struct rt_thread *thread;
695+
rt_tick_t cur_tick;
696696
rt_base_t critical_level;
697697

698698
RT_ASSERT(tick != RT_NULL);
@@ -708,14 +708,13 @@ rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick)
708708
/* disable interrupt */
709709
critical_level = rt_enter_critical();
710710

711-
if (rt_tick_get_delta(*tick) < inc_tick)
711+
cur_tick = rt_tick_get();
712+
if (cur_tick - *tick < inc_tick)
712713
{
713714
rt_tick_t left_tick;
714715

715716
*tick += inc_tick;
716-
left_tick = *tick - rt_tick_get();
717-
if (left_tick > *tick)
718-
left_tick = RT_TICK_MAX - left_tick + 1;
717+
left_tick = *tick - cur_tick;
719718

720719
/* suspend thread */
721720
rt_thread_suspend_with_flag(thread, RT_UNINTERRUPTIBLE);
@@ -736,7 +735,7 @@ rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick)
736735
}
737736
else
738737
{
739-
*tick = rt_tick_get();
738+
*tick = cur_tick;
740739
rt_exit_critical_safe(critical_level);
741740
}
742741

0 commit comments

Comments
 (0)