diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
commit | b8cf34c691623e4ec329053cbbf68522a855882d (patch) | |
tree | 34da08632a99677f6b79ecb65e5b655a5b69a67f /boost/thread/detail/config.hpp | |
parent | 3fdc3e5ee96dca5b11d1694975a65200787eab86 (diff) | |
download | boost-b8cf34c691623e4ec329053cbbf68522a855882d.tar.gz boost-b8cf34c691623e4ec329053cbbf68522a855882d.tar.bz2 boost-b8cf34c691623e4ec329053cbbf68522a855882d.zip |
Imported Upstream version 1.67.0upstream/1.67.0
Diffstat (limited to 'boost/thread/detail/config.hpp')
-rw-r--r-- | boost/thread/detail/config.hpp | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/boost/thread/detail/config.hpp b/boost/thread/detail/config.hpp index ebd73a7e92..70c74687f6 100644 --- a/boost/thread/detail/config.hpp +++ b/boost/thread/detail/config.hpp @@ -12,7 +12,6 @@ #include <boost/detail/workaround.hpp> #include <boost/thread/detail/platform.hpp> -//#define BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC //#define BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS // ATTRIBUTE_MAY_ALIAS @@ -30,6 +29,34 @@ #define BOOST_THREAD_ATTRIBUTE_MAY_ALIAS #endif +#if defined(BOOST_THREAD_CHRONO_WINDOWS_API) +# warning Boost.Thread will use the Windows API for time +#elif defined(BOOST_THREAD_CHRONO_MAC_API) +# warning Boost.Thread will use the Mac API for time +#elif defined(BOOST_THREAD_CHRONO_POSIX_API) +# warning Boost.Thread will use the POSIX API for time +#endif + +# if defined( BOOST_THREAD_CHRONO_WINDOWS_API ) && defined( BOOST_THREAD_CHRONO_POSIX_API ) +# error both BOOST_THREAD_CHRONO_WINDOWS_API and BOOST_THREAD_CHRONO_POSIX_API are defined +# elif defined( BOOST_THREAD_CHRONO_WINDOWS_API ) && defined( BOOST_THREAD_CHRONO_MAC_API ) +# error both BOOST_THREAD_CHRONO_WINDOWS_API and BOOST_THREAD_CHRONO_MAC_API are defined +# elif defined( BOOST_THREAD_CHRONO_MAC_API ) && defined( BOOST_THREAD_CHRONO_POSIX_API ) +# error both BOOST_THREAD_CHRONO_MAC_API and BOOST_THREAD_CHRONO_POSIX_API are defined +# elif !defined( BOOST_THREAD_CHRONO_WINDOWS_API ) && !defined( BOOST_THREAD_CHRONO_MAC_API ) && !defined( BOOST_THREAD_CHRONO_POSIX_API ) +# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) +# define BOOST_THREAD_CHRONO_WINDOWS_API +# elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +# define BOOST_THREAD_CHRONO_MAC_API +# else +# define BOOST_THREAD_CHRONO_POSIX_API +# endif +# endif + +#if !defined(BOOST_THREAD_POLL_INTERVAL_MILLISECONDS) +#define BOOST_THREAD_POLL_INTERVAL_MILLISECONDS 100 +#endif + #if defined BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED #define BOOST_THREAD_ASSERT_PRECONDITION(EXPR, EX) \ if (EXPR) {} else boost::throw_exception(EX) @@ -96,7 +123,7 @@ /// RVALUE_REFERENCES_DONT_MATCH_FUNTION_PTR //#if defined BOOST_NO_CXX11_RVALUE_REFERENCES || defined BOOST_MSVC -#define BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNTION_PTR +#define BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR //#endif // Default version @@ -385,6 +412,29 @@ # endif #endif +#if defined(BOOST_THREAD_CHRONO_WINDOWS_API) + #define BOOST_THREAD_HAS_MONO_CLOCK + #define BOOST_THREAD_INTERNAL_CLOCK_IS_MONO +#elif defined(BOOST_THREAD_CHRONO_MAC_API) + #define BOOST_THREAD_HAS_MONO_CLOCK +#else + #include <time.h> // check for CLOCK_MONOTONIC + #if defined(CLOCK_MONOTONIC) + #define BOOST_THREAD_HAS_MONO_CLOCK + #define BOOST_THREAD_INTERNAL_CLOCK_IS_MONO + #endif +#endif + +#if defined(BOOST_THREAD_PLATFORM_WIN32) +#elif ! defined BOOST_THREAD_INTERNAL_CLOCK_IS_MONO +#if defined BOOST_PTHREAD_HAS_TIMEDLOCK +#define BOOST_THREAD_USES_PTHREAD_TIMEDLOCK +#elif (defined(_POSIX_TIMEOUTS) && (_POSIX_TIMEOUTS-0)>=200112L) \ + || (defined(__ANDROID__) && defined(__ANDROID_API__) && __ANDROID_API__ >= 21) +#define BOOST_THREAD_USES_PTHREAD_TIMEDLOCK +#endif +#endif + // provided for backwards compatibility, since this // macro was used for several releases by mistake. #if defined(BOOST_THREAD_DYN_DLL) && ! defined(BOOST_THREAD_DYN_LINK) |