Drizzled Public API Documentation

thread_var.h
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
14  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
15 
16 /* Defines to make different thread packages compatible */
17 
18 #pragma once
19 
20 #include <pthread.h>
21 #include <boost/thread/condition_variable.hpp>
22 #include <boost/thread/mutex.hpp>
23 #include <boost/thread/recursive_mutex.hpp>
24 #include <boost/thread/shared_mutex.hpp>
25 #include <boost/thread/thread.hpp>
26 #include <boost/thread/tss.hpp>
27 
28 namespace drizzled {
29 namespace internal {
30 
32 {
33  boost::condition_variable_any suspend;
34  boost::mutex mutex;
35  boost::mutex* volatile current_mutex;
36  boost::condition_variable_any* volatile current_cond;
37  uint64_t id;
38  bool volatile abort;
39  void* opt_info;
40 
41  st_my_thread_var(uint64_t id0) :
42  current_mutex(NULL),
43  current_cond(NULL),
44  id(id0),
45  abort(false),
46  opt_info(NULL)
47  {
48  }
49 };
50 
51 typedef boost::thread_specific_ptr<st_my_thread_var> thread_local_st;
52 
53 thread_local_st& my_thread_var2();
54 
55 } /* namespace internal */
56 } /* namespace drizzled */
TODO: Rename this file - func.h is stupid.