diff options
Diffstat (limited to 'src/third_party/boost-1.60.0/boost/thread/shared_lock_guard.hpp')
-rw-r--r-- | src/third_party/boost-1.60.0/boost/thread/shared_lock_guard.hpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/third_party/boost-1.60.0/boost/thread/shared_lock_guard.hpp b/src/third_party/boost-1.60.0/boost/thread/shared_lock_guard.hpp new file mode 100644 index 00000000000..97a6397c1e6 --- /dev/null +++ b/src/third_party/boost-1.60.0/boost/thread/shared_lock_guard.hpp @@ -0,0 +1,53 @@ +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// (C) Copyright 2012 Vicente J. Botet Escriba + +#ifndef BOOST_THREAD_SHARED_LOCK_GUARD_HPP +#define BOOST_THREAD_SHARED_LOCK_GUARD_HPP +#include <boost/thread/detail/config.hpp> +//#include <boost/thread/locks.hpp> +#include <boost/thread/lock_options.hpp> +#include <boost/thread/detail/delete.hpp> + +namespace boost +{ + + template<typename SharedMutex> + class shared_lock_guard + { + private: + SharedMutex& m; + + public: + typedef SharedMutex mutex_type; + BOOST_THREAD_NO_COPYABLE(shared_lock_guard) + explicit shared_lock_guard(SharedMutex& m_): + m(m_) + { + m.lock_shared(); + } + shared_lock_guard(SharedMutex& m_,adopt_lock_t): + m(m_) + {} + ~shared_lock_guard() + { + m.unlock_shared(); + } + }; + +#ifdef BOOST_THREAD_NO_AUTO_DETECT_MUTEX_TYPES + + template<typename T> + struct is_mutex_type<shared_lock_guard<T> > + { + BOOST_STATIC_CONSTANT(bool, value = true); + }; + + +#endif + + +} + +#endif // header |