1 | // Distributed under the Boost Software License, Version 1.0. (See |
2 | // accompanying file LICENSE_1_0.txt or copy at |
3 | // http://www.boost.org/LICENSE_1_0.txt) |
4 | // (C) Copyright 2009-2012 Vicente J. Botet Escriba |
5 | |
6 | #ifndef BOOST_THREAD_LOCK_TRAITS_HPP |
7 | #define BOOST_THREAD_LOCK_TRAITS_HPP |
8 | |
9 | #include <boost/thread/detail/config.hpp> |
10 | //#include <boost/thread/detail/move.hpp> |
11 | //#include <boost/thread/exceptions.hpp> |
12 | // |
13 | //#ifdef BOOST_THREAD_USES_CHRONO |
14 | //#include <boost/chrono/time_point.hpp> |
15 | //#include <boost/chrono/duration.hpp> |
16 | //#endif |
17 | |
18 | #include <boost/type_traits/integral_constant.hpp> |
19 | |
20 | #include <boost/config/abi_prefix.hpp> |
21 | |
22 | namespace boost |
23 | { |
24 | |
25 | /** |
26 | * An strict lock is a lock ensuring the mutex is locked on the scope of the lock |
27 | * There is no single way to define a strict lock as the strict_lock and |
28 | * nesteed_strict_lock shows. So we need a metafunction that states if a |
29 | * lock is a strict lock "sur parole". |
30 | */ |
31 | |
32 | template <typename Lock> |
33 | struct is_strict_lock_sur_parolle : false_type {}; |
34 | |
35 | |
36 | template <typename Lock> |
37 | struct is_strict_lock_sur_parole : is_strict_lock_sur_parolle<Lock> {}; |
38 | |
39 | template <typename Lock> |
40 | struct is_strict_lock : is_strict_lock_sur_parole<Lock> {}; |
41 | |
42 | } |
43 | #include <boost/config/abi_suffix.hpp> |
44 | |
45 | #endif |
46 | |