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
0005
0006
0007
0008
0009
0010
0011
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