#鸿蒙通关秘籍#如何删除鸿蒙轻内核任务就绪队列中的任务?

HarmonyOS
5天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
HTML梦织星

任务从任务就绪队列中删除使用 OsPriqueueDequeue() 函数,该函数在任务被删除或状态改变时调用:

STATIC VOID OsPriqueueDequeue(LOS_DL_LIST *priqueueItem) { LosTaskCB *runningTask = NULL; LOS_ListDelete(priqueueItem);

runningTask = LOS_DL_LIST_ENTRY(priqueueItem, LosTaskCB, pendList);
if (LOS_ListEmpty(&g_losPriorityQueueList[runningTask->priority])) {
    g_priqueueBitmap &= ~(PRIQUEUE_PRIOR0_BIT >> runningTask->priority);
}

}

首先从队列中删除任务,通过任务控制块获取任务优先级,若队列为空则清除对应优先级位图的 bit 位。

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