浏览代码

增加signal的状态位说明及一处代码修改,以防止编译警告

shaojinchun 6 年之前
父节点
当前提交
c5249157d7
共有 2 个文件被更改,包括 5 次插入4 次删除
  1. 3 3
      include/rtdef.h
  2. 2 1
      src/signal.c

+ 3 - 3
include/rtdef.h

@@ -492,10 +492,10 @@ typedef siginfo_t rt_siginfo_t;
 #define RT_THREAD_CLOSE                 0x04                /**< Closed status */
 #define RT_THREAD_STAT_MASK             0x0f
 
-#define RT_THREAD_STAT_SIGNAL           0x10
+#define RT_THREAD_STAT_SIGNAL           0x10                /**< task hold signals */
 #define RT_THREAD_STAT_SIGNAL_READY     (RT_THREAD_STAT_SIGNAL | RT_THREAD_READY)
-#define RT_THREAD_STAT_SIGNAL_WAIT      0x20
-#define RT_THREAD_STAT_SIGNAL_PENDING   0x40
+#define RT_THREAD_STAT_SIGNAL_WAIT      0x20                /**< task is waiting for signals */
+#define RT_THREAD_STAT_SIGNAL_PENDING   0x40                /**< signals is held and it has not been procressed */
 #define RT_THREAD_STAT_SIGNAL_MASK      0xf0
 
 /**

+ 2 - 1
src/signal.c

@@ -56,7 +56,8 @@ static void _signal_entry(void *parameter)
     {
         struct rt_cpu* pcpu = rt_cpu_self();
 
-        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--;
         }