From 54936c19bd03469b4c45f5f5158e09c9411096ae Mon Sep 17 00:00:00 2001 From: arvinzzz Date: Sun, 26 Sep 2021 10:19:38 +0800 Subject: [PATCH] =?UTF-8?q?fixed=203fd22ac=20from=20https://gitee.com/arvi?= =?UTF-8?q?nzzz/kernel=5Fliteos=5Fm/pulls/324=20fix:=20=E4=BF=AE=E5=A4=8Dh?= =?UTF-8?q?ook=E5=B1=82LOS=5FHOOK=5FTYPE=5FSEM=5FPEND=E7=9A=84runningTask?= =?UTF-8?q?=E5=85=A5=E5=8F=82=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);