Răsfoiți Sursa

[Kernel] Move the ++/-- operator outside of condition.

Bernard Xiong 6 ani în urmă
părinte
comite
4127cc13bf
1 a modificat fișierele cu 8 adăugiri și 2 ștergeri
  1. 8 2
      src/cpu.c

+ 8 - 2
src/cpu.c

@@ -42,12 +42,16 @@ rt_base_t rt_cpus_lock(void)
     pcpu = rt_cpu_self();
     pcpu = rt_cpu_self();
     if (pcpu->current_thread != RT_NULL)
     if (pcpu->current_thread != RT_NULL)
     {
     {
-        if (pcpu->current_thread->cpus_lock_nest++ == 0)
+        register rt_uint16_t lock_nest = pcpu->current_thread->cpus_lock_nest;
+
+        pcpu->current_thread->cpus_lock_nest++;
+        if (lock_nest == 0)
         {
         {
             pcpu->current_thread->scheduler_lock_nest++;
             pcpu->current_thread->scheduler_lock_nest++;
             rt_hw_spin_lock(&_cpus_lock);
             rt_hw_spin_lock(&_cpus_lock);
         }
         }
     }
     }
+
     return level;
     return level;
 }
 }
 RTM_EXPORT(rt_cpus_lock);
 RTM_EXPORT(rt_cpus_lock);
@@ -61,7 +65,9 @@ void rt_cpus_unlock(rt_base_t level)
 
 
     if (pcpu->current_thread != RT_NULL)
     if (pcpu->current_thread != RT_NULL)
     {
     {
-        if (--pcpu->current_thread->cpus_lock_nest == 0)
+        pcpu->current_thread->cpus_lock_nest--;
+
+        if (pcpu->current_thread->cpus_lock_nest == 0)
         {
         {
             pcpu->current_thread->scheduler_lock_nest--;
             pcpu->current_thread->scheduler_lock_nest--;
             rt_hw_spin_unlock(&_cpus_lock);
             rt_hw_spin_unlock(&_cpus_lock);