Răsfoiți Sursa

🐞 fix(cpu): cpus_lock should lock scheduler (#8368)

xqyjlj 1 an în urmă
părinte
comite
84706ba7b4
1 a modificat fișierele cu 2 adăugiri și 1 ștergeri
  1. 2 1
      src/cpu.c

+ 2 - 1
src/cpu.c

@@ -162,7 +162,7 @@ rt_base_t rt_cpus_lock(void)
     struct rt_cpu* pcpu;
 
     level = rt_hw_local_irq_disable();
-
+    rt_enter_critical();
     pcpu = rt_cpu_self();
     if (pcpu->current_thread != RT_NULL)
     {
@@ -207,6 +207,7 @@ void rt_cpus_unlock(rt_base_t level)
         }
     }
     rt_hw_local_irq_enable(level);
+    rt_exit_critical();
 }
 RTM_EXPORT(rt_cpus_unlock);