Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 10:09:31

0001 #ifndef BOOST_THREAD_SHARED_MUTEX_HPP
0002 #define BOOST_THREAD_SHARED_MUTEX_HPP
0003 
0004 //  shared_mutex.hpp
0005 //
0006 //  (C) Copyright 2007 Anthony Williams
0007 //  (C) Copyright 2011-2012 Vicente J. Botet Escriba
0008 //
0009 //  Distributed under the Boost Software License, Version 1.0. (See
0010 //  accompanying file LICENSE_1_0.txt or copy at
0011 //  http://www.boost.org/LICENSE_1_0.txt)
0012 
0013 #include <boost/thread/detail/config.hpp>
0014 #if defined(BOOST_THREAD_PLATFORM_WIN32)
0015 #if defined(BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN)
0016 #if defined(BOOST_THREAD_V2_SHARED_MUTEX)
0017 #include <boost/thread/v2/shared_mutex.hpp>
0018 #else
0019 #include <boost/thread/pthread/shared_mutex.hpp>
0020 #endif
0021 #else
0022 #include <boost/thread/win32/shared_mutex.hpp>
0023 #endif
0024 #elif defined(BOOST_THREAD_PLATFORM_PTHREAD)
0025 #if defined(BOOST_THREAD_V2_SHARED_MUTEX)
0026 #include <boost/thread/v2/shared_mutex.hpp>
0027 #else
0028 #include <boost/thread/pthread/shared_mutex.hpp>
0029 #endif
0030 #else
0031 #error "Boost threads unavailable on this platform"
0032 #endif
0033 
0034 #include <boost/thread/lockable_traits.hpp>
0035 
0036 namespace boost
0037 {
0038   typedef shared_mutex shared_timed_mutex;
0039   namespace sync
0040   {
0041 #ifdef BOOST_THREAD_NO_AUTO_DETECT_MUTEX_TYPES
0042     template<>
0043     struct is_basic_lockable<shared_mutex>
0044     {
0045       BOOST_STATIC_CONSTANT(bool, value = true);
0046     };
0047     template<>
0048     struct is_lockable<shared_mutex>
0049     {
0050       BOOST_STATIC_CONSTANT(bool, value = true);
0051     };
0052 #endif
0053 
0054   }
0055 }
0056 
0057 #endif