os_task_exit

所属模块:任务管理 | 类型:任务终止函数

API Metadata

函数ID:os_task_exit
模块:task
类型:task terminate
嵌套深度:1

函数简介

os_task_exit 用于立即退出当前正在运行的任务。

任务会被标记为删除状态,并从调度器中移除运行资格,同时触发一次系统调度。

该接口属于强制任务终止机制,用于任务主动结束自身执行流程。

函数原型

void os_task_exit(void);

参数说明

无参数。

返回值

无返回值。

源码实现

void os_task_exit() { u8 id; EA = 0; id = OS_CURRENT_TASK; /* 标记删除请求 */ OS_TASK_EVENT[id] |= OS_EVENT_DELETE_REQ; /* 从调度器移除 */ if(id >= OS_PROCESS_MAX) { if(id == OS_PROCESS_MAX) { OS_KUAI_PROCESS_A = 0; OS_WAIT_DI2[0] = 0; } else if(id == OS_PROCESS_MAX + 1) { OS_KUAI_PROCESS_B = 0; OS_WAIT_DI2[1] = 0; } } else { OS_PROCESS_OK[id] &= 0xfe; OS_TASK[id].state = DEAD; } OS_SCHED_REASON = 1; EA = 1; TF0 = 1; }

使用示例

void task_demo() { // 任务完成后主动退出 os_task_exit(); }

注意事项

该函数会立即触发调度器切换,并将当前任务标记为删除状态。 调用后当前任务将不再继续执行后续代码。

相关推荐