~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/memory/hp_panic.cc

  • Committer: tdavies
  • Date: 2010-10-05 03:25:08 UTC
  • mto: (1816.1.1 build)
  • mto: This revision was merged to the branch mainline in revision 1817.
  • Revision ID: tdavies@molly-20101005032508-pd1cg5nmxziov9wv
change in file: ../drizzled/base.h. Converted C structs key_range and KEY_MULTI_RANGE to C++ classes

Show diffs side-by-side

added added

removed removed

Lines of Context:
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 */