fix: 修复kill进程时,因liteipc阻塞的进程概率无法退出问题
kill进程时,会将因为liteipc阻塞的线程唤醒,使其调度并自动退出,由于liteipc阻塞机制为 循环阻塞方式,会导致将因liteipc阻塞的线程唤醒后又进入等待中。此处在唤醒因liteipc阻塞的 线程后检查是否已有kill标志,如果有使其按接收数据失败退出,在返回用户态之前,该线程会进 入退出流程,结束运行。 Close #I3XX7K Signed-off-by: zhushengle <zhushengle@huawei.com> Change-Id: Iec4e298dff4aefd2994289067a35cb5673e323f9
This commit is contained in:
@@ -470,6 +470,15 @@ STATIC INLINE BOOL OsTaskIsPending(const LosTaskCB *taskCB)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
STATIC INLINE BOOL OsTaskIsKilled(const LosTaskCB *taskCB)
|
||||
{
|
||||
if (taskCB->taskStatus & OS_TASK_FLAG_EXIT_KILL) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#define OS_TID_CHECK_INVALID(taskID) ((UINT32)(taskID) >= g_taskMaxNum)
|
||||
|
||||
/* get task info */
|
||||
|
||||
Reference in New Issue
Block a user