ucosII中,任务删除函数 OSTaskDel (INT8U prio);中做了如下操作
1、从各种list中删除我们想要删除的任务
2、
OSLockNesting++;
OS_EXIT_CRITICAL();
OS_Dummy();
OS_ENTER_CRITICAL();
OSLockNesting--;
加锁,保证任务删除中不会切换到其他任务中去
开中断,然后执行一条空指令,关中断
3、删除任务tcb
我想问一下,2 这里为什么不把这几句话直接全都去掉,只有1和3,直接把任务从list中删除,再把tcb删除,全都完成之后在打开中断,为什么中间要加这几句,强制开一下中断执行1条中断指令后再返回来? |