hp_close.c
Upload User: tsgydb
Upload Date: 2007-04-14
Package Size: 10674k
Code Size: 1k
Category:

MySQL

Development Platform:

Visual C++

  1. /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.    
  3.    This program is free software; you can redistribute it and/or modify
  4.    it under the terms of the GNU General Public License as published by
  5.    the Free Software Foundation; either version 2 of the License, or
  6.    (at your option) any later version.
  7.    
  8.    This program is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.    GNU General Public License for more details.
  12.    
  13.    You should have received a copy of the GNU General Public License
  14.    along with this program; if not, write to the Free Software
  15.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  16. /* close a heap-database */
  17. #include "heapdef.h"
  18. /* Close a database open by hp_open() */
  19. /* Data is not deallocated */
  20. int heap_close(HP_INFO *info)
  21. {
  22.   int tmp;
  23.   DBUG_ENTER("heap_close");
  24.   pthread_mutex_lock(&THR_LOCK_heap);
  25.   tmp= _hp_close(info);
  26.   pthread_mutex_unlock(&THR_LOCK_heap);
  27.   DBUG_RETURN(tmp);
  28. }
  29. int _hp_close(register HP_INFO *info)
  30. {
  31.   int error=0;
  32.   DBUG_ENTER("_hp_close");
  33. #ifndef DBUG_OFF
  34.   if (info->s->changed && heap_check_heap(info,0))
  35.   {
  36.     error=my_errno=HA_ERR_CRASHED;
  37.   }
  38. #endif
  39.   info->s->changed=0;
  40.   info->s->open_count--;
  41.   heap_open_list=list_delete(heap_open_list,&info->open_list);
  42.   my_free((gptr) info,MYF(0));
  43.   DBUG_RETURN(error);
  44. }