Exemplo n.º 1
0
static void _tc_cleanup()
{
    /* 调度器上锁,上锁后,将不再切换到其他线程,仅响应中断 */
    rt_enter_critical();

    /* 删除定时器对象 */
    rt_timer_delete(timer1);
    rt_timer_delete(timer2);

    /* 调度器解锁 */
    rt_exit_critical();

    /* 设置TestCase状态 */
    tc_done(TC_STAT_PASSED);
}
Exemplo n.º 2
0
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;
}