Browse Source

Merge pull request #4741 from geniusgogo/fix_tick_increase

🐛 🐛  **It is strongly recommended to upgrade with all versions of the relevant code.**

fix rt_tick_increase critical code protection
Bernard Xiong 4 years ago
parent
commit
84fb09230f
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/clock.c

+ 4 - 0
src/clock.c

@@ -76,10 +76,14 @@ void rt_tick_increase(void)
     -- thread->remaining_tick;
     if (thread->remaining_tick == 0)
     {
+        rt_base_t level;
+
         /* change to initialized tick */
         thread->remaining_tick = thread->init_tick;
 
+        level = rt_hw_interrupt_disable();
         thread->stat |= RT_THREAD_STAT_YIELD;
+        rt_hw_interrupt_enable(level);
 
         rt_schedule();
     }