123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef BOOST_THREAD_WIN32_MUTEX_HPP
- #define BOOST_THREAD_WIN32_MUTEX_HPP
- // (C) Copyright 2005-7 Anthony Williams
- // (C) Copyright 2011-2012 Vicente J. Botet Escriba
- // 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)
- #include <boost/thread/win32/basic_timed_mutex.hpp>
- #include <boost/thread/exceptions.hpp>
- #if defined BOOST_THREAD_PROVIDES_NESTED_LOCKS
- #include <boost/thread/lock_types.hpp>
- #endif
- #include <boost/thread/detail/delete.hpp>
- #include <boost/config/abi_prefix.hpp>
- namespace boost
- {
- namespace detail
- {
- typedef ::boost::detail::basic_timed_mutex underlying_mutex;
- }
- class mutex:
- public ::boost::detail::underlying_mutex
- {
- public:
- BOOST_THREAD_NO_COPYABLE(mutex)
- mutex()
- {
- initialize();
- }
- ~mutex()
- {
- destroy();
- }
- #if defined BOOST_THREAD_PROVIDES_NESTED_LOCKS
- typedef unique_lock<mutex> scoped_lock;
- typedef detail::try_lock_wrapper<mutex> scoped_try_lock;
- #endif
- };
- typedef mutex try_mutex;
- class timed_mutex:
- public ::boost::detail::basic_timed_mutex
- {
- public:
- BOOST_THREAD_NO_COPYABLE(timed_mutex)
- timed_mutex()
- {
- initialize();
- }
- ~timed_mutex()
- {
- destroy();
- }
- #if defined BOOST_THREAD_PROVIDES_NESTED_LOCKS
- typedef unique_lock<timed_mutex> scoped_timed_lock;
- typedef detail::try_lock_wrapper<timed_mutex> scoped_try_lock;
- typedef scoped_timed_lock scoped_lock;
- #endif
- };
- }
- #include <boost/config/abi_suffix.hpp>
- #endif
|