int heap_close(HP_INFO *info)
{
  int tmp;
  DBUG_ENTER("heap_close");
  mysql_mutex_lock(&THR_LOCK_heap);
  tmp= hp_close(info);
  mysql_mutex_unlock(&THR_LOCK_heap);
  DBUG_RETURN(tmp);
}
Beispiel #2
0
int hp_panic(enum ha_panic_function flag)
{
  LIST *element,*next_open;
  DBUG_ENTER("hp_panic");

  mysql_mutex_lock(&THR_LOCK_heap);
  for (element=heap_open_list ; element ; element=next_open)
  {
    HP_INFO *info=(HP_INFO*) element->data;
    next_open=element->next;	/* Save if close */
    switch (flag) {
    case HA_PANIC_CLOSE:
      hp_close(info);
      break;
    default:
      break;
    }
  }
  for (element=heap_share_list ; element ; element=next_open)
  {
    HP_SHARE *share=(HP_SHARE*) element->data;
    next_open=element->next;	/* Save if close */
    switch (flag) {
    case HA_PANIC_CLOSE:
    {
      if (!share->open_count)
	hp_free(share);
      break;
    }
    default:
      break;
    }
  }
  mysql_mutex_unlock(&THR_LOCK_heap);
  DBUG_RETURN(0);
} /* hp_panic */