From 3fd22ac2b0b4c690669a659246aba099fd4311ec Mon Sep 17 00:00:00 2001 From: arvinzzz Date: Sun, 26 Sep 2021 10:19:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dhook=E5=B1=82LOS=5FHOO?= =?UTF-8?q?K=5FTYPE=5FSEM=5FPEND=E7=9A=84runningTask=E5=85=A5=E5=8F=82?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在校验完semPend之后,就获取好runningTask并且与semPend关联 close: #I4BU4P Signed-off-by: arvinzzz Change-Id: Ib56a1a1db8e4471d9e2adb0b7c3d8b17b1f87b8d --- kernel/src/los_sem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/src/los_sem.c b/kernel/src/los_sem.c index ebc31328..664feccb 100644 --- a/kernel/src/los_sem.c +++ b/kernel/src/los_sem.c @@ -232,6 +232,8 @@ LITE_OS_SEC_TEXT UINT32 LOS_SemPend(UINT32 semHandle, UINT32 timeout) goto ERROR_SEM_PEND; } + runningTask = (LosTaskCB *)g_losTask.runTask; + if (semPended->semCount > 0) { semPended->semCount--; LOS_IntRestore(intSave); @@ -244,7 +246,6 @@ LITE_OS_SEC_TEXT UINT32 LOS_SemPend(UINT32 semHandle, UINT32 timeout) goto ERROR_SEM_PEND; } - runningTask = (LosTaskCB *)g_losTask.runTask; runningTask->taskSem = (VOID *)semPended; OsSchedTaskWait(&semPended->semList, timeout); LOS_IntRestore(intSave);