~drizzle-trunk/drizzle/development

1689.2.10 by Brian Aker
Move thread_var out to its own include file.
1
/* Copyright (C) 2000 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
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
14
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
1689.2.10 by Brian Aker
Move thread_var out to its own include file.
15
16
/* Defines to make different thread packages compatible */
17
2234 by Brian Aker
Mass removal of ifdef/endif in favor of pragma once.
18
#pragma once
1689.2.10 by Brian Aker
Move thread_var out to its own include file.
19
20
#include <pthread.h>
21
#include <boost/thread/recursive_mutex.hpp>
22
#include <boost/thread/mutex.hpp>
1812.3.7 by Brian Aker
Typdef our lock type.
23
#include <boost/thread/shared_mutex.hpp>
1689.2.10 by Brian Aker
Move thread_var out to its own include file.
24
#include <boost/thread/condition_variable.hpp>
25
2280.1.6 by Olaf van der Spek
Refactor
26
namespace drizzled {
27
namespace internal {
1689.2.10 by Brian Aker
Move thread_var out to its own include file.
28
29
struct st_my_thread_var
30
{
1812.3.5 by Brian Aker
Move to boost condition_any
31
  boost::condition_variable_any suspend;
1786.2.1 by Brian Aker
Current boost work (more conversion).
32
  boost::mutex mutex;
2280.1.6 by Olaf van der Spek
Refactor
33
  boost::mutex* volatile current_mutex;
34
  boost::condition_variable_any* volatile current_cond;
1689.2.10 by Brian Aker
Move thread_var out to its own include file.
35
  uint64_t id;
2280.1.6 by Olaf van der Spek
Refactor
36
  bool volatile abort;
37
  void* opt_info;
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
38
2280.1.6 by Olaf van der Spek
Refactor
39
  st_my_thread_var(uint64_t id0) :
40
    current_mutex(NULL),
41
    current_cond(NULL),
42
    id(id0),
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
43
    abort(false),
2280.1.6 by Olaf van der Spek
Refactor
44
    opt_info(NULL)
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
45
  { 
46
  }
1689.2.10 by Brian Aker
Move thread_var out to its own include file.
47
};
48
2280.1.6 by Olaf van der Spek
Refactor
49
extern struct st_my_thread_var* _my_thread_var();
1689.2.10 by Brian Aker
Move thread_var out to its own include file.
50
#define my_thread_var (::drizzled::internal::_my_thread_var())
51
52
} /* namespace internal */
53
} /* namespace drizzled */
54