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