File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -647,9 +647,6 @@ static rt_err_t _thread_sleep(rt_tick_t tick)
647647
648648 thread -> error = - RT_EINTR ;
649649
650- /* notify a pending rescheduling */
651- rt_schedule ();
652-
653650 /* exit critical and do a rescheduling */
654651 rt_exit_critical_safe (critical_level );
655652
@@ -692,7 +689,6 @@ RTM_EXPORT(rt_thread_delay);
692689rt_err_t rt_thread_delay_until (rt_tick_t * tick , rt_tick_t inc_tick )
693690{
694691 struct rt_thread * thread ;
695- rt_tick_t cur_tick ;
696692 rt_base_t critical_level ;
697693
698694 RT_ASSERT (tick != RT_NULL );
@@ -708,13 +704,11 @@ rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick)
708704 /* disable interrupt */
709705 critical_level = rt_enter_critical ();
710706
711- cur_tick = rt_tick_get ();
712- if (cur_tick - * tick < inc_tick )
707+ if (rt_tick_get_delta (* tick ) < inc_tick )
713708 {
714709 rt_tick_t left_tick ;
715710
716- * tick += inc_tick ;
717- left_tick = * tick - cur_tick ;
711+ left_tick = rt_tick_get_left (* tick + inc_tick );
718712
719713 /* suspend thread */
720714 rt_thread_suspend_with_flag (thread , RT_UNINTERRUPTIBLE );
@@ -735,7 +729,7 @@ rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick)
735729 }
736730 else
737731 {
738- * tick = cur_tick ;
732+ * tick = rt_tick_get () ;
739733 rt_exit_critical_safe (critical_level );
740734 }
741735
You can’t perform that action at this time.
0 commit comments