static void _tc_cleanup() { /* 调度器上锁,上锁后,将不再切换到其他线程,仅响应中断 */ rt_enter_critical(); /* 删除定时器对象 */ rt_timer_delete(timer1); rt_timer_delete(timer2); /* 调度器解锁 */ rt_exit_critical(); /* 设置TestCase状态 */ tc_done(TC_STAT_PASSED); }
static int logDeleteBlock(int id) { int i; struct log_ops * ops; struct log_ops * opsNext; for (i=0; i<LOG_MAX_BLOCKS; i++) if (logBlocks[i].id == id) break; if (i >= LOG_MAX_BLOCKS) { ERROR("trying to delete block id %d that doesn't exist.", id); return ENOENT; } ops = logBlocks[i].ops; while (ops) { opsNext = ops->next; opsFree(ops); ops = opsNext; } if (logBlocks[i].timer != 0) { //xTimerStop(logBlocks[i].timer, portMAX_DELAY); rt_timer_stop(logBlocks[i].timer); //xTimerDelete(logBlocks[i].timer, portMAX_DELAY); rt_timer_delete(logBlocks[i].timer); logBlocks[i].timer = 0; } logBlocks[i].id = BLOCK_ID_FREE; return 0; }