|
@@ -31,7 +31,9 @@ struct mutex
|
|
|
} // namespace system
|
|
|
} // namespace boost
|
|
|
|
|
|
-#elif defined(BOOST_MSSTL_VERSION) && BOOST_MSSTL_VERSION >= 140
|
|
|
+#else // defined(BOOST_SYSTEM_DISABLE_THREADS)
|
|
|
+
|
|
|
+#if defined(BOOST_MSSTL_VERSION) && BOOST_MSSTL_VERSION >= 140
|
|
|
|
|
|
// Under the MS STL, std::mutex::mutex() is not constexpr, as is
|
|
|
// required by the standard, which leads to initialization order
|
|
@@ -40,6 +42,14 @@ struct mutex
|
|
|
|
|
|
#include <shared_mutex>
|
|
|
|
|
|
+#if BOOST_MSSTL_VERSION >= 142 || _HAS_SHARED_MUTEX
|
|
|
+# define BOOST_SYSTEM_HAS_MSSTL_SHARED_MUTEX
|
|
|
+#endif
|
|
|
+
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(BOOST_SYSTEM_HAS_MSSTL_SHARED_MUTEX)
|
|
|
+
|
|
|
namespace boost
|
|
|
{
|
|
|
namespace system
|
|
@@ -53,7 +63,7 @@ typedef std::shared_mutex mutex;
|
|
|
} // namespace system
|
|
|
} // namespace boost
|
|
|
|
|
|
-#else
|
|
|
+#else // defined(BOOST_SYSTEM_HAS_MSSTL_SHARED_MUTEX)
|
|
|
|
|
|
#include <mutex>
|
|
|
|
|
@@ -70,7 +80,8 @@ using std::mutex;
|
|
|
} // namespace system
|
|
|
} // namespace boost
|
|
|
|
|
|
-#endif
|
|
|
+#endif // defined(BOOST_SYSTEM_HAS_MSSTL_SHARED_MUTEX)
|
|
|
+#endif // defined(BOOST_SYSTEM_DISABLE_THREADS)
|
|
|
|
|
|
namespace boost
|
|
|
{
|