UINT _tx_block_pool_delete(
TX_BLOCK_POOL *pool_ptr);
局部变量:
将内存块池从created list中删除,并且恢复挂起在suspension list中的线程
流程:
1.禁止中断 //为了进行删除内存块池的操作
2.标记内存块池为无效 //id=0
3.从created list中删除内存块池
4.禁止抢占
5.恢复中断
6.遍历suspension list
(1) thread_ptr指向suspension list挂起的第一个线程
(2) 循环操作 //直到suspended count为0时退出
1) 禁止中断
2) cleanup设为NULL //禁止timeout
3) 禁止抢占
4) 恢复中断
5) 关闭timer
6) 设置当前挂起线程返回状态为TX_DELETED
7) thread_ptr指向下一个挂起线程
8) 恢复当前线程
9) suspended count--
7.禁止中断,恢复抢占
8.恢复中断
9.检查抢占,若当前线程不是执行线程,控制返回系统
//恢复线程后,可能有高优先级线程,需要切换
10.返回TX_SUCCESS