Browse Source

fix rt_tick_increase critical code protection

geniusgogo 4 năm trước cách đây
mục cha
commit
37960723b8
1 tập tin đã thay đổi với 4 bổ sung0 xóa
  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();
     }