os_task_is_valid
所属模块:任务管理 | 类型:任务状态校验函数
函数简介
os_task_is_valid 用于判断指定任务是否已经注册或有效存在。
该接口用于任务调度前的合法性检查,防止对未注册任务进行操作。
支持普通任务与高速任务的统一检测,是系统资源安全访问的重要保护机制。
函数原型
signed char os_task_is_valid(u8 id);
参数说明
| 参数 |
说明 |
| id |
任务ID(0~OS_PROCESS_MAX+1) |
返回值
-1:参数异常
0:任务未注册
1:任务已注册
源码实现
signed char os_task_is_valid(u8 id)
{
if(id > OS_PROCESS_MAX + 1)
{
return -1;
}
if(id == OS_PROCESS_MAX + 1)
{
if(OS_SP_KUAI_BEI[1])
{
return 1;
}
else
{
return 0;
}
}
if(id == OS_PROCESS_MAX)
{
if(OS_SP_KUAI_BEI[0])
{
return 1;
}
else
{
return 0;
}
}
if(OS_PROCESS_OK[id] != 0)
{
return 1;
}
return 0;
}
使用示例
void debug_valid()
{
if(os_task_is_valid(3))
{
// 任务存在
}
}
注意事项
该函数仅用于任务存在性判断,不会修改任务状态。
高速任务与普通任务的判定逻辑不同,需注意区分处理方式。