!105 L0 swtmr_align定时器在相同周期时,count计算错误,且相同响应时间时,后插入的节点应该位于已存在节点的后面
Merge pull request !105 from zhushengle/swtmr
This commit is contained in:
commit
b57d33ba07
|
@ -58,9 +58,12 @@ STATIC INLINE VOID OsAddNode2SortLink(SortLinkAttribute *sortLinkHeader, SortLin
|
||||||
}
|
}
|
||||||
|
|
||||||
SortLinkList *listSorted = LOS_DL_LIST_ENTRY(head->pstNext, SortLinkList, sortLinkNode);
|
SortLinkList *listSorted = LOS_DL_LIST_ENTRY(head->pstNext, SortLinkList, sortLinkNode);
|
||||||
if (listSorted->responseTime >= sortList->responseTime) {
|
if (listSorted->responseTime > sortList->responseTime) {
|
||||||
LOS_ListAdd(head, &sortList->sortLinkNode);
|
LOS_ListAdd(head, &sortList->sortLinkNode);
|
||||||
return;
|
return;
|
||||||
|
} else if (listSorted->responseTime == sortList->responseTime) {
|
||||||
|
LOS_ListAdd(head->pstNext, &sortList->sortLinkNode);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOS_DL_LIST *prevNode = head->pstPrev;
|
LOS_DL_LIST *prevNode = head->pstPrev;
|
||||||
|
|
|
@ -158,7 +158,7 @@ VOID OsSwtmrFindAlignPos(UINT64 currTime, SWTMR_CTRL_S *swtmr)
|
||||||
}
|
}
|
||||||
/* find same interval timer, directly return */
|
/* find same interval timer, directly return */
|
||||||
if (cur->uwInterval == swtmr->uwInterval) {
|
if (cur->uwInterval == swtmr->uwInterval) {
|
||||||
swtmr->uwCount = 0;
|
swtmr->uwCount = OsSortLinkGetTargetExpireTime(currTime, &cur->stSortList);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue