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 2012 Vicente J. Botet Escriba
6 #ifndef BOOST_THREAD_SHARED_LOCK_GUARD_HPP
7 #define BOOST_THREAD_SHARED_LOCK_GUARD_HPP
8 #include <boost/thread/detail/config.hpp>
9 //#include <boost/thread/locks.hpp>
10 #include <boost/thread/lock_options.hpp>
11 #include <boost/thread/detail/delete.hpp>
16 template<typename SharedMutex>
17 class shared_lock_guard
23 typedef SharedMutex mutex_type;
24 BOOST_THREAD_NO_COPYABLE(shared_lock_guard)
25 explicit shared_lock_guard(SharedMutex& m_):
30 shared_lock_guard(SharedMutex& m_,adopt_lock_t):
39 #ifdef BOOST_THREAD_NO_AUTO_DETECT_MUTEX_TYPES
42 struct is_mutex_type<shared_lock_guard<T> >
44 BOOST_STATIC_CONSTANT(bool, value = true);