From c5249157d7b92ed29cee9df440b4a9928e1a4e4f Mon Sep 17 00:00:00 2001 From: shaojinchun Date: Fri, 10 May 2019 10:41:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0signal=E7=9A=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E4=BD=8D=E8=AF=B4=E6=98=8E=E5=8F=8A=E4=B8=80=E5=A4=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9=EF=BC=8C=E4=BB=A5=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E7=BC=96=E8=AF=91=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/rtdef.h | 6 +++--- src/signal.c | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/rtdef.h b/include/rtdef.h index 253333253a..2aff4afdb0 100644 --- a/include/rtdef.h +++ b/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 /** diff --git a/src/signal.c b/src/signal.c index 0cab6215af..0c0f990f46 100644 --- a/src/signal.c +++ b/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--; } -- GitLab