mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / storage / heap / hp_panic.c
blob751c88514e39a085c3b507d2b3f63c239cca3430
1 /* Copyright (c) 2000-2002, 2005, 2006 MySQL AB
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.
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.
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 Street, Fifth Floor, Boston, MA 02110-1301, USA */
16 #include "heapdef.h"
18 /* if flag == HA_PANIC_CLOSE then all files are removed for more
19 memory */
21 int hp_panic(enum ha_panic_function flag)
23 LIST *element,*next_open;
24 DBUG_ENTER("hp_panic");
26 pthread_mutex_lock(&THR_LOCK_heap);
27 for (element=heap_open_list ; element ; element=next_open)
29 HP_INFO *info=(HP_INFO*) element->data;
30 next_open=element->next; /* Save if close */
31 switch (flag) {
32 case HA_PANIC_CLOSE:
33 hp_close(info);
34 break;
35 default:
36 break;
39 for (element=heap_share_list ; element ; element=next_open)
41 HP_SHARE *share=(HP_SHARE*) element->data;
42 next_open=element->next; /* Save if close */
43 switch (flag) {
44 case HA_PANIC_CLOSE:
46 if (!share->open_count)
47 hp_free(share);
48 break;
50 default:
51 break;
54 pthread_mutex_unlock(&THR_LOCK_heap);
55 DBUG_RETURN(0);
56 } /* hp_panic */