Drizzled Public API Documentation

hp_panic.cc
1 /* Copyright (C) 2000-2002 MySQL 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; version 2 of the License.
6 
7  This program is distributed in the hope that it will be useful,
8  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  GNU General Public License for more details.
11 
12  You should have received a copy of the GNU General Public License
13  along with this program; if not, write to the Free Software
14  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
15 
16 #include "heap_priv.h"
17 
18 using namespace std;
19 using namespace drizzled;
20 
21  /* if flag == HA_PANIC_CLOSE then all files are removed for more
22  memory */
23 
24 int hp_panic(enum ha_panic_function flag)
25 {
26  THR_LOCK_heap.lock();
27  list<HP_INFO *>::iterator info_it= heap_open_list.begin();
28  while (info_it != heap_open_list.end())
29  {
30  HP_INFO *info= *info_it;
31  switch (flag) {
32  case HA_PANIC_CLOSE:
33  hp_close(info);
34  break;
35  default:
36  break;
37  }
38  ++info_it;
39  }
40  list<HP_SHARE *>::iterator share_it= heap_share_list.begin();
41  while (share_it != heap_share_list.end())
42  {
43  HP_SHARE *share= *share_it;
44  switch (flag) {
45  case HA_PANIC_CLOSE:
46  {
47  if (!share->open_count)
48  hp_free(share);
49  break;
50  }
51  default:
52  break;
53  }
54  ++share_it;
55  }
56  THR_LOCK_heap.unlock();
57  return(0);
58 } /* hp_panic */
TODO: Rename this file - func.h is stupid.