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
24namespace 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
54

source code of boost/libs/thread/include/boost/thread/mutex.hpp