事件控制块的清空与状态查询
发布日期:2021-07-01 04:26:10 浏览次数:2 分类:技术文章

本文共 2170 字,大约阅读时间需要 7 分钟。

文章目录

1 事件控制块的清空与状态查询

1.1 设计实现

事件控制块的清空:

在这里插入图片描述
事件控制块的查询:
在这里插入图片描述

/************************************************************************************************************ Function name        :   tEventRemoveAll** Descriptions         :   清除所有等待中的任务,将事件发送给所有任务** parameters           :   event 事件控制块** parameters           :   msg 事件消息** parameters           :   result 告知事件的等待结果** Returned value       :   唤醒的任务数量***********************************************************************************************************/uint32_t tEventRemoveAll (tEvent * event, void * msg, uint32_t result){
tNode * node; uint32_t count; // 进入临界区 uint32_t status = tTaskEnterCritical(); // 获取等待中的任务数量 count = tListCount(&event->waitList); // 遍历所有等待中的任务 while ((node = tListRemoveFirst(&event->waitList)) != (tNode *)0) {
// 转换为相应的任务结构 tTask * task = (tTask *)tNodeParent(node, tTask, linkNode); // 设置收到的消息、结构,清除相应的等待标志位 task->waitEvent = (tEvent *)0; task->eventMsg = msg; task->waitEventResult = result; task->state &= ~TINYOS_TASK_WAIT_MASK; // 任务申请了超时等待,这里检查下,将其从延时队列中移除 if (task->delayTicks != 0) {
tTimeTaskWakeUp(task); } // 将任务加入就绪队列 tTaskSchedRdy(task); } // 退出临界区 tTaskExitCritical(status); return count;}/************************************************************************************************************ Function name : tEventWaitCount** Descriptions : 事件控制块中等待的任务数量** parameters : event 事件控制块** parameters : msg 事件消息** parameters : result 告知事件的等待结果** Returned value : 唤醒的任务数量***********************************************************************************************************/uint32_t tEventWaitCount (tEvent * event){
uint32_t count = 0; // 进入临界区 uint32_t status = tTaskEnterCritical(); count = tListCount(&event->waitList); // 退出临界区 tTaskExitCritical(status); return count;}

参考资料:

转载地址:https://muzimin.blog.csdn.net/article/details/105048444 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:计数信号量的原理与创建
下一篇:Qt中的调色板

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年05月05日 11时52分53秒