From d955790a44a679421798ec1ac2900b4d75dd75a4 Mon Sep 17 00:00:00 2001 From: zff Date: Tue, 30 Nov 2021 16:14:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=A8=E6=88=B7=E6=80=81=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B=E4=B8=BB=E7=BA=BF=E7=A8=8B=E9=80=80=E5=87=BA=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=85=B6=E4=BB=96=E5=AD=90=E7=BA=BF=E7=A8=8B=E5=88=9A?= =?UTF-8?q?=E5=A5=BD=E8=BF=9B=E5=85=A5=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E4=BC=9A=E5=AF=BC=E8=87=B4=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=8D=A1=E6=AD=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 接口OsTaskExitGroup被同一个进程的两个互等线程重入,逻辑出现死循环,导致系统卡死 close: #I4KGBT Signed-off-by: zff Change-Id: I484bba67473f7d0edbfdff95549ffb32bffb4988 --- arch/arm/arm/src/los_exc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/arm/src/los_exc.c b/arch/arm/arm/src/los_exc.c index 7de69f61..ed575a85 100644 --- a/arch/arm/arm/src/los_exc.c +++ b/arch/arm/arm/src/los_exc.c @@ -563,7 +563,6 @@ STATIC VOID OsUserExcHandle(ExcContext *excBufAddr) #else g_currHandleExcCpuID = INVALID_CPUID; #endif - runProcess->processStatus &= ~OS_PROCESS_FLAG_EXIT; #ifdef LOSCFG_KERNEL_SMP #ifdef LOSCFG_FS_VFS @@ -580,10 +579,10 @@ STATIC VOID OsUserExcHandle(ExcContext *excBufAddr) #endif OsProcessExitCodeSignalSet(runProcess, SIGUSR2); - /* An exception was raised by a task that is not the current main thread during the exit process of + /* An exception was raised by a task during the exit process of * the current process. */ - if ((runProcess->processStatus & OS_PROCESS_FLAG_EXIT) && (runProcess->threadGroupID != runTask->taskID)) { + if (runProcess->processStatus & OS_PROCESS_FLAG_EXIT) { SCHEDULER_UNLOCK(intSave); /* Exception handling All operations should be kept prior to that operation */ OsExcRestore(); -- GitLab