Chris@16: #ifndef BOOST_THREAD_WIN32_MUTEX_HPP Chris@16: #define BOOST_THREAD_WIN32_MUTEX_HPP Chris@16: // (C) Copyright 2005-7 Anthony Williams Chris@16: // (C) Copyright 2011-2012 Vicente J. Botet Escriba Chris@16: // Distributed under the Boost Software License, Version 1.0. (See Chris@16: // accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #include Chris@16: #include Chris@16: #if defined BOOST_THREAD_PROVIDES_NESTED_LOCKS Chris@16: #include Chris@16: #endif Chris@16: #include Chris@16: Chris@16: #include Chris@16: Chris@16: namespace boost Chris@16: { Chris@16: namespace detail Chris@16: { Chris@16: typedef ::boost::detail::basic_timed_mutex underlying_mutex; Chris@16: } Chris@16: Chris@16: class mutex: Chris@16: public ::boost::detail::underlying_mutex Chris@16: { Chris@16: public: Chris@16: BOOST_THREAD_NO_COPYABLE(mutex) Chris@16: mutex() Chris@16: { Chris@16: initialize(); Chris@16: } Chris@16: ~mutex() Chris@16: { Chris@16: destroy(); Chris@16: } Chris@16: Chris@16: #if defined BOOST_THREAD_PROVIDES_NESTED_LOCKS Chris@16: typedef unique_lock scoped_lock; Chris@16: typedef detail::try_lock_wrapper scoped_try_lock; Chris@16: #endif Chris@16: }; Chris@16: Chris@16: typedef mutex try_mutex; Chris@16: Chris@16: class timed_mutex: Chris@16: public ::boost::detail::basic_timed_mutex Chris@16: { Chris@16: public: Chris@16: BOOST_THREAD_NO_COPYABLE(timed_mutex) Chris@16: timed_mutex() Chris@16: { Chris@16: initialize(); Chris@16: } Chris@16: Chris@16: ~timed_mutex() Chris@16: { Chris@16: destroy(); Chris@16: } Chris@16: Chris@16: #if defined BOOST_THREAD_PROVIDES_NESTED_LOCKS Chris@16: typedef unique_lock scoped_timed_lock; Chris@16: typedef detail::try_lock_wrapper scoped_try_lock; Chris@16: typedef scoped_timed_lock scoped_lock; Chris@16: #endif Chris@16: }; Chris@16: } Chris@16: Chris@16: #include Chris@16: Chris@16: #endif