提交 30d5badb 编写于 作者: O openharmony_ci 提交者: Gitee

!723 用户态进程主线程退出时,其他子线程刚好进入异常处理流程会导致系统卡死

Merge pull request !723 from zhangfanfan2/master
...@@ -563,7 +563,6 @@ STATIC VOID OsUserExcHandle(ExcContext *excBufAddr) ...@@ -563,7 +563,6 @@ STATIC VOID OsUserExcHandle(ExcContext *excBufAddr)
#else #else
g_currHandleExcCpuID = INVALID_CPUID; g_currHandleExcCpuID = INVALID_CPUID;
#endif #endif
runProcess->processStatus &= ~OS_PROCESS_FLAG_EXIT;
#ifdef LOSCFG_KERNEL_SMP #ifdef LOSCFG_KERNEL_SMP
#ifdef LOSCFG_FS_VFS #ifdef LOSCFG_FS_VFS
...@@ -580,10 +579,10 @@ STATIC VOID OsUserExcHandle(ExcContext *excBufAddr) ...@@ -580,10 +579,10 @@ STATIC VOID OsUserExcHandle(ExcContext *excBufAddr)
#endif #endif
OsProcessExitCodeSignalSet(runProcess, SIGUSR2); 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. * the current process.
*/ */
if ((runProcess->processStatus & OS_PROCESS_FLAG_EXIT) && (runProcess->threadGroupID != runTask->taskID)) { if (runProcess->processStatus & OS_PROCESS_FLAG_EXIT) {
SCHEDULER_UNLOCK(intSave); SCHEDULER_UNLOCK(intSave);
/* Exception handling All operations should be kept prior to that operation */ /* Exception handling All operations should be kept prior to that operation */
OsExcRestore(); OsExcRestore();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册