Chris@16
|
1 #ifndef BOOST_THREAD_RECURSIVE_MUTEX_HPP
|
Chris@16
|
2 #define BOOST_THREAD_RECURSIVE_MUTEX_HPP
|
Chris@16
|
3
|
Chris@16
|
4 // recursive_mutex.hpp
|
Chris@16
|
5 //
|
Chris@16
|
6 // (C) Copyright 2007 Anthony Williams
|
Chris@16
|
7 //
|
Chris@16
|
8 // Distributed under the Boost Software License, Version 1.0. (See
|
Chris@16
|
9 // accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
10 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
11
|
Chris@16
|
12 #include <boost/thread/detail/platform.hpp>
|
Chris@16
|
13 #if defined(BOOST_THREAD_PLATFORM_WIN32)
|
Chris@16
|
14 #include <boost/thread/win32/recursive_mutex.hpp>
|
Chris@16
|
15 #elif defined(BOOST_THREAD_PLATFORM_PTHREAD)
|
Chris@16
|
16 #include <boost/thread/pthread/recursive_mutex.hpp>
|
Chris@16
|
17 #else
|
Chris@16
|
18 #error "Boost threads unavailable on this platform"
|
Chris@16
|
19 #endif
|
Chris@16
|
20
|
Chris@16
|
21 #include <boost/thread/lockable_traits.hpp>
|
Chris@16
|
22
|
Chris@16
|
23 namespace boost
|
Chris@16
|
24 {
|
Chris@16
|
25 namespace sync
|
Chris@16
|
26 {
|
Chris@16
|
27
|
Chris@16
|
28 #ifdef BOOST_THREAD_NO_AUTO_DETECT_MUTEX_TYPES
|
Chris@16
|
29 template<>
|
Chris@16
|
30 struct is_basic_lockable<recursive_mutex>
|
Chris@16
|
31 {
|
Chris@16
|
32 BOOST_STATIC_CONSTANT(bool, value = true);
|
Chris@16
|
33 };
|
Chris@16
|
34 template<>
|
Chris@16
|
35 struct is_lockable<recursive_mutex>
|
Chris@16
|
36 {
|
Chris@16
|
37 BOOST_STATIC_CONSTANT(bool, value = true);
|
Chris@16
|
38 };
|
Chris@16
|
39 template<>
|
Chris@16
|
40 struct is_basic_lockable<recursive_timed_mutex>
|
Chris@16
|
41 {
|
Chris@16
|
42 BOOST_STATIC_CONSTANT(bool, value = true);
|
Chris@16
|
43 };
|
Chris@16
|
44 template<>
|
Chris@16
|
45 struct is_lockable<recursive_timed_mutex>
|
Chris@16
|
46 {
|
Chris@16
|
47 BOOST_STATIC_CONSTANT(bool, value = true);
|
Chris@16
|
48 };
|
Chris@16
|
49 #endif
|
Chris@16
|
50
|
Chris@16
|
51 template<>
|
Chris@16
|
52 struct is_recursive_mutex_sur_parolle<recursive_mutex>
|
Chris@16
|
53 {
|
Chris@16
|
54 BOOST_STATIC_CONSTANT(bool, value = true);
|
Chris@16
|
55 };
|
Chris@16
|
56 template<>
|
Chris@16
|
57 struct is_recursive_mutex_sur_parolle<recursive_timed_mutex>
|
Chris@16
|
58 {
|
Chris@16
|
59 BOOST_STATIC_CONSTANT(bool, value = true);
|
Chris@16
|
60 };
|
Chris@16
|
61
|
Chris@16
|
62 }
|
Chris@16
|
63 }
|
Chris@16
|
64 #endif
|