#鸿蒙通关秘籍#如何获取任务排序链表中下一个超时到期的时间?

HarmonyOS
5天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
星辰光EPC

通过OsTaskNextSwitchTimeGet函数可以获取下一个任务超时到期的时间。该函数遍历排序链表,找出最小的等待时间。

c UINT32 OsTaskNextSwitchTimeGet(VOID) { UINT32 taskSortLinkTick = LOS_WAIT_FOREVER; for (UINT32 index = 0; index < OS_TSK_SORTLINK_LEN; index++) { LOS_DL_LIST *listObject = g_taskSortLink.sortLink + ((g_taskSortLink.cursor + index) % OS_TSK_SORTLINK_LEN); if (!LOS_ListEmpty(listObject)) { LosTaskCB *taskCB = LOS_DL_LIST_ENTRY((listObject)->pstNext, LosTaskCB, timerList); UINT32 tempTicks = (index == 0) ? OS_TSK_SORTLINK_LEN : index; tempTicks += (UINT32)(UWROLLNUM((UINT32)taskCB->idxRollNum) * OS_TSK_SORTLINK_LEN); if (taskSortLinkTick > tempTicks) { taskSortLinkTick = tempTicks; } } } return taskSortLinkTick; }

分享
微博
QQ
微信
回复
5天前
相关问题