diff --git a/src/cpu.c b/src/cpu.c index d8e12595c1..344a70b32e 100644 --- a/src/cpu.c +++ b/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);