annotate DEPENDENCIES/generic/include/boost/thread/detail/config.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 // Copyright (C) 2001-2003
Chris@16 2 // William E. Kempf
Chris@16 3 // Copyright (C) 2011-2013 Vicente J. Botet Escriba
Chris@16 4 //
Chris@16 5 // Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 6 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 7
Chris@16 8 #ifndef BOOST_THREAD_CONFIG_WEK01032003_HPP
Chris@16 9 #define BOOST_THREAD_CONFIG_WEK01032003_HPP
Chris@16 10
Chris@16 11 #include <boost/config.hpp>
Chris@16 12 #include <boost/detail/workaround.hpp>
Chris@16 13 #include <boost/thread/detail/platform.hpp>
Chris@16 14
Chris@16 15 //#define BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS
Chris@16 16 // ATTRIBUTE_MAY_ALIAS
Chris@16 17
Chris@101 18 #if defined(__GNUC__) && !defined(__INTEL_COMPILER)
Chris@16 19
Chris@16 20 // GCC since 3.3 has may_alias attribute that helps to alleviate optimizer issues with
Chris@16 21 // regard to violation of the strict aliasing rules.
Chris@16 22
Chris@16 23 #define BOOST_THREAD_DETAIL_USE_ATTRIBUTE_MAY_ALIAS
Chris@16 24 #define BOOST_THREAD_ATTRIBUTE_MAY_ALIAS __attribute__((__may_alias__))
Chris@16 25 #else
Chris@16 26 #define BOOST_THREAD_ATTRIBUTE_MAY_ALIAS
Chris@16 27 #endif
Chris@16 28
Chris@16 29
Chris@16 30 #if defined BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED
Chris@16 31 #define BOOST_THREAD_ASSERT_PRECONDITION(EXPR, EX) \
Chris@16 32 if (EXPR) {} else boost::throw_exception(EX)
Chris@16 33 #define BOOST_THREAD_VERIFY_PRECONDITION(EXPR, EX) \
Chris@16 34 if (EXPR) {} else boost::throw_exception(EX)
Chris@16 35 #define BOOST_THREAD_THROW_ELSE_RETURN(EX, RET) \
Chris@16 36 boost::throw_exception(EX)
Chris@16 37 #else
Chris@16 38 #define BOOST_THREAD_ASSERT_PRECONDITION(EXPR, EX)
Chris@16 39 #define BOOST_THREAD_VERIFY_PRECONDITION(EXPR, EX) \
Chris@16 40 (void)(EXPR)
Chris@16 41 #define BOOST_THREAD_THROW_ELSE_RETURN(EX, RET) \
Chris@16 42 return (RET)
Chris@16 43 #endif
Chris@16 44
Chris@16 45 // This compiler doesn't support Boost.Chrono
Chris@16 46 #if defined __IBMCPP__ && (__IBMCPP__ < 1100) \
Chris@16 47 && ! defined BOOST_THREAD_DONT_USE_CHRONO
Chris@16 48 #define BOOST_THREAD_DONT_USE_CHRONO
Chris@16 49 #if ! defined BOOST_THREAD_USES_DATETIME
Chris@16 50 #define BOOST_THREAD_USES_DATETIME
Chris@16 51 #endif
Chris@16 52 #endif
Chris@16 53
Chris@16 54 // This compiler doesn't support Boost.Move
Chris@16 55 #if BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100) \
Chris@16 56 && ! defined BOOST_THREAD_DONT_USE_MOVE
Chris@16 57 #define BOOST_THREAD_DONT_USE_MOVE
Chris@16 58 #endif
Chris@16 59
Chris@16 60 // This compiler doesn't support Boost.Container Allocators files
Chris@16 61 #if defined __SUNPRO_CC \
Chris@16 62 && ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE_CTOR_ALLOCATORS
Chris@16 63 #define BOOST_THREAD_DONT_PROVIDE_FUTURE_CTOR_ALLOCATORS
Chris@16 64 #endif
Chris@16 65
Chris@16 66 #if defined _WIN32_WCE && _WIN32_WCE==0x501 \
Chris@16 67 && ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE_CTOR_ALLOCATORS
Chris@16 68 #define BOOST_THREAD_DONT_PROVIDE_FUTURE_CTOR_ALLOCATORS
Chris@16 69 #endif
Chris@16 70
Chris@16 71
Chris@16 72 #if defined BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX || defined BOOST_NO_CXX11_HDR_INITIALIZER_LIST
Chris@16 73 #define BOOST_THREAD_NO_CXX11_HDR_INITIALIZER_LIST
Chris@16 74 #define BOOST_THREAD_NO_MAKE_LOCK_GUARD
Chris@16 75 #define BOOST_THREAD_NO_MAKE_STRICT_LOCK
Chris@16 76 #define BOOST_THREAD_NO_MAKE_NESTED_STRICT_LOCK
Chris@16 77 #endif
Chris@16 78
Chris@16 79 #if defined(BOOST_NO_CXX11_HDR_TUPLE) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
Chris@16 80 #define BOOST_THREAD_NO_MAKE_UNIQUE_LOCKS
Chris@16 81 #define BOOST_THREAD_NO_SYNCHRONIZE
Chris@16 82 #elif defined _MSC_VER && _MSC_VER <= 1600
Chris@16 83 // C++ features supported by VC++ 10 (aka 2010)
Chris@16 84 #define BOOST_THREAD_NO_MAKE_UNIQUE_LOCKS
Chris@16 85 #define BOOST_THREAD_NO_SYNCHRONIZE
Chris@16 86 #endif
Chris@16 87
Chris@16 88 /// BASIC_THREAD_ID
Chris@16 89 #if ! defined BOOST_THREAD_DONT_PROVIDE_BASIC_THREAD_ID \
Chris@16 90 && ! defined BOOST_THREAD_PROVIDES_BASIC_THREAD_ID
Chris@16 91 #define BOOST_THREAD_PROVIDES_BASIC_THREAD_ID
Chris@16 92 #endif
Chris@16 93
Chris@16 94 /// RVALUE_REFERENCES_DONT_MATCH_FUNTION_PTR
Chris@16 95 //#if defined BOOST_NO_CXX11_RVALUE_REFERENCES || defined BOOST_MSVC
Chris@16 96 #define BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNTION_PTR
Chris@16 97 //#endif
Chris@16 98
Chris@16 99 // Default version
Chris@16 100 #if !defined BOOST_THREAD_VERSION
Chris@16 101 #define BOOST_THREAD_VERSION 2
Chris@16 102 #else
Chris@16 103 #if BOOST_THREAD_VERSION!=2 && BOOST_THREAD_VERSION!=3 && BOOST_THREAD_VERSION!=4
Chris@16 104 #error "BOOST_THREAD_VERSION must be 2, 3 or 4"
Chris@16 105 #endif
Chris@16 106 #endif
Chris@16 107
Chris@16 108 // CHRONO
Chris@16 109 // Uses Boost.Chrono by default if not stated the opposite defining BOOST_THREAD_DONT_USE_CHRONO
Chris@16 110 #if ! defined BOOST_THREAD_DONT_USE_CHRONO \
Chris@16 111 && ! defined BOOST_THREAD_USES_CHRONO
Chris@16 112 #define BOOST_THREAD_USES_CHRONO
Chris@16 113 #endif
Chris@16 114
Chris@16 115 #if ! defined BOOST_THREAD_DONT_USE_ATOMIC \
Chris@16 116 && ! defined BOOST_THREAD_USES_ATOMIC
Chris@16 117 #define BOOST_THREAD_USES_ATOMIC
Chris@16 118 //#define BOOST_THREAD_DONT_USE_ATOMIC
Chris@16 119 #endif
Chris@16 120
Chris@16 121 #if defined BOOST_THREAD_USES_ATOMIC
Chris@16 122 // Andrey Semashev
Chris@16 123 #define BOOST_THREAD_ONCE_ATOMIC
Chris@16 124 #else
Chris@16 125 //#elif ! defined BOOST_NO_CXX11_THREAD_LOCAL && ! defined BOOST_NO_THREAD_LOCAL && ! defined BOOST_THREAD_NO_UINT32_PSEUDO_ATOMIC
Chris@16 126 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2444.html#Appendix
Chris@16 127 #define BOOST_THREAD_ONCE_FAST_EPOCH
Chris@16 128 #endif
Chris@16 129 #if BOOST_THREAD_VERSION==2
Chris@16 130
Chris@16 131 // PROVIDE_PROMISE_LAZY
Chris@16 132 #if ! defined BOOST_THREAD_DONT_PROVIDE_PROMISE_LAZY \
Chris@16 133 && ! defined BOOST_THREAD_PROVIDES_PROMISE_LAZY
Chris@16 134 #define BOOST_THREAD_PROVIDES_PROMISE_LAZY
Chris@16 135 #endif
Chris@16 136
Chris@16 137 // PROVIDE_THREAD_EQ
Chris@16 138 #if ! defined BOOST_THREAD_DONT_PROVIDE_THREAD_EQ \
Chris@16 139 && ! defined BOOST_THREAD_PROVIDES_THREAD_EQ
Chris@16 140 #define BOOST_THREAD_PROVIDES_THREAD_EQ
Chris@16 141 #endif
Chris@16 142
Chris@16 143 #endif
Chris@16 144
Chris@16 145 #if BOOST_THREAD_VERSION>=3
Chris@16 146
Chris@16 147 // ONCE_CXX11
Chris@16 148 // fixme BOOST_THREAD_PROVIDES_ONCE_CXX11 doesn't works when thread.cpp is compiled BOOST_THREAD_VERSION 3
Chris@16 149 #if ! defined BOOST_THREAD_DONT_PROVIDE_ONCE_CXX11 \
Chris@16 150 && ! defined BOOST_THREAD_PROVIDES_ONCE_CXX11
Chris@16 151 #define BOOST_THREAD_DONT_PROVIDE_ONCE_CXX11
Chris@16 152 #endif
Chris@16 153
Chris@16 154 // THREAD_DESTRUCTOR_CALLS_TERMINATE_IF_JOINABLE
Chris@16 155 #if ! defined BOOST_THREAD_DONT_PROVIDE_THREAD_DESTRUCTOR_CALLS_TERMINATE_IF_JOINABLE \
Chris@16 156 && ! defined BOOST_THREAD_PROVIDES_THREAD_DESTRUCTOR_CALLS_TERMINATE_IF_JOINABLE
Chris@16 157 #define BOOST_THREAD_PROVIDES_THREAD_DESTRUCTOR_CALLS_TERMINATE_IF_JOINABLE
Chris@16 158 #endif
Chris@16 159
Chris@16 160 // THREAD_MOVE_ASSIGN_CALLS_TERMINATE_IF_JOINABLE
Chris@16 161 #if ! defined BOOST_THREAD_DONT_PROVIDE_THREAD_MOVE_ASSIGN_CALLS_TERMINATE_IF_JOINABLE \
Chris@16 162 && ! defined BOOST_THREAD_PROVIDES_THREAD_MOVE_ASSIGN_CALLS_TERMINATE_IF_JOINABLE
Chris@16 163 #define BOOST_THREAD_PROVIDES_THREAD_MOVE_ASSIGN_CALLS_TERMINATE_IF_JOINABLE
Chris@16 164 #endif
Chris@16 165
Chris@16 166 // PROVIDE_FUTURE
Chris@16 167 #if ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE \
Chris@16 168 && ! defined BOOST_THREAD_PROVIDES_FUTURE
Chris@16 169 #define BOOST_THREAD_PROVIDES_FUTURE
Chris@16 170 #endif
Chris@16 171
Chris@16 172 // FUTURE_CTOR_ALLOCATORS
Chris@16 173 #if ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE_CTOR_ALLOCATORS \
Chris@16 174 && ! defined BOOST_THREAD_PROVIDES_FUTURE_CTOR_ALLOCATORS
Chris@16 175 #define BOOST_THREAD_PROVIDES_FUTURE_CTOR_ALLOCATORS
Chris@16 176 #endif
Chris@16 177
Chris@16 178 // SHARED_MUTEX_UPWARDS_CONVERSIONS
Chris@16 179 #if ! defined BOOST_THREAD_DONT_PROVIDE_SHARED_MUTEX_UPWARDS_CONVERSIONS \
Chris@16 180 && ! defined BOOST_THREAD_PROVIDES_SHARED_MUTEX_UPWARDS_CONVERSIONS
Chris@16 181 #define BOOST_THREAD_PROVIDES_SHARED_MUTEX_UPWARDS_CONVERSIONS
Chris@16 182 #endif
Chris@16 183
Chris@16 184 // PROVIDE_EXPLICIT_LOCK_CONVERSION
Chris@16 185 #if ! defined BOOST_THREAD_DONT_PROVIDE_EXPLICIT_LOCK_CONVERSION \
Chris@16 186 && ! defined BOOST_THREAD_PROVIDES_EXPLICIT_LOCK_CONVERSION
Chris@16 187 #define BOOST_THREAD_PROVIDES_EXPLICIT_LOCK_CONVERSION
Chris@16 188 #endif
Chris@16 189
Chris@16 190 // GENERIC_SHARED_MUTEX_ON_WIN
Chris@16 191 #if ! defined BOOST_THREAD_DONT_PROVIDE_GENERIC_SHARED_MUTEX_ON_WIN \
Chris@16 192 && ! defined BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN
Chris@16 193 #define BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN
Chris@16 194 #endif
Chris@16 195
Chris@16 196 // USE_MOVE
Chris@16 197 #if ! defined BOOST_THREAD_DONT_USE_MOVE \
Chris@16 198 && ! defined BOOST_THREAD_USES_MOVE
Chris@16 199 #define BOOST_THREAD_USES_MOVE
Chris@16 200 #endif
Chris@16 201
Chris@16 202 #endif
Chris@16 203
Chris@16 204 // deprecated since version 4
Chris@16 205 #if BOOST_THREAD_VERSION < 4
Chris@16 206
Chris@16 207 // NESTED_LOCKS
Chris@16 208 #if ! defined BOOST_THREAD_PROVIDES_NESTED_LOCKS \
Chris@16 209 && ! defined BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS
Chris@16 210 #define BOOST_THREAD_PROVIDES_NESTED_LOCKS
Chris@16 211 #endif
Chris@16 212
Chris@16 213 // CONDITION
Chris@16 214 #if ! defined BOOST_THREAD_PROVIDES_CONDITION \
Chris@16 215 && ! defined BOOST_THREAD_DONT_PROVIDE_CONDITION
Chris@16 216 #define BOOST_THREAD_PROVIDES_CONDITION
Chris@16 217 #endif
Chris@16 218
Chris@16 219 // USE_DATETIME
Chris@16 220 #if ! defined BOOST_THREAD_DONT_USE_DATETIME \
Chris@16 221 && ! defined BOOST_THREAD_USES_DATETIME
Chris@16 222 #define BOOST_THREAD_USES_DATETIME
Chris@16 223 #endif
Chris@16 224 #endif
Chris@16 225
Chris@16 226 #if BOOST_THREAD_VERSION>=4
Chris@16 227
Chris@16 228 // SIGNATURE_PACKAGED_TASK
Chris@16 229 #if ! defined BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK \
Chris@16 230 && ! defined BOOST_THREAD_DONT_PROVIDE_SIGNATURE_PACKAGED_TASK
Chris@16 231 #define BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
Chris@16 232 #endif
Chris@16 233
Chris@16 234 // VARIADIC_THREAD
Chris@16 235 #if ! defined BOOST_THREAD_PROVIDES_VARIADIC_THREAD \
Chris@16 236 && ! defined BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD
Chris@16 237
Chris@16 238 #if ! defined(BOOST_NO_SFINAE_EXPR) && \
Chris@16 239 ! defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && \
Chris@16 240 ! defined(BOOST_NO_CXX11_DECLTYPE) && \
Chris@16 241 ! defined(BOOST_NO_CXX11_DECLTYPE_N3276) && \
Chris@101 242 ! defined(BOOST_NO_CXX11_TRAILING_RESULT_TYPES) && \
Chris@16 243 ! defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && \
Chris@16 244 ! defined(BOOST_NO_CXX11_HDR_TUPLE)
Chris@16 245
Chris@16 246 #define BOOST_THREAD_PROVIDES_VARIADIC_THREAD
Chris@16 247 #endif
Chris@16 248 #endif
Chris@16 249
Chris@101 250 #if ! defined BOOST_THREAD_PROVIDES_FUTURE_WHEN_ALL_WHEN_ANY \
Chris@101 251 && ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE_WHEN_ALL_WHEN_ANY
Chris@101 252
Chris@101 253 #if ! defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && \
Chris@101 254 ! defined(BOOST_NO_CXX11_HDR_TUPLE)
Chris@101 255
Chris@101 256 #define BOOST_THREAD_PROVIDES_FUTURE_WHEN_ALL_WHEN_ANY
Chris@101 257 #endif
Chris@101 258 #endif
Chris@101 259
Chris@101 260 // ! defined(BOOST_NO_SFINAE_EXPR) &&
Chris@101 261 // ! defined(BOOST_NO_CXX11_RVALUE_REFERENCES) &&
Chris@101 262 // ! defined(BOOST_NO_CXX11_AUTO) &&
Chris@101 263 // ! defined(BOOST_NO_CXX11_DECLTYPE) &&
Chris@101 264 // ! defined(BOOST_NO_CXX11_DECLTYPE_N3276) &&
Chris@101 265
Chris@16 266
Chris@16 267 // MAKE_READY_AT_THREAD_EXIT
Chris@16 268 #if ! defined BOOST_THREAD_PROVIDES_MAKE_READY_AT_THREAD_EXIT \
Chris@16 269 && ! defined BOOST_THREAD_DONT_PROVIDE_MAKE_READY_AT_THREAD_EXIT
Chris@16 270
Chris@16 271 //#if defined BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK && defined(BOOST_THREAD_PROVIDES_VARIADIC_THREAD)
Chris@16 272 #define BOOST_THREAD_PROVIDES_MAKE_READY_AT_THREAD_EXIT
Chris@16 273 //#endif
Chris@16 274 #endif
Chris@16 275
Chris@16 276 // FUTURE_CONTINUATION
Chris@16 277 #if ! defined BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION \
Chris@16 278 && ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE_CONTINUATION
Chris@16 279 #define BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION
Chris@16 280 #endif
Chris@16 281
Chris@16 282 #if ! defined BOOST_THREAD_PROVIDES_FUTURE_UNWRAP \
Chris@16 283 && ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE_UNWRAP
Chris@16 284 #define BOOST_THREAD_PROVIDES_FUTURE_UNWRAP
Chris@16 285 #endif
Chris@16 286
Chris@16 287 // FUTURE_INVALID_AFTER_GET
Chris@16 288 #if ! defined BOOST_THREAD_PROVIDES_FUTURE_INVALID_AFTER_GET \
Chris@16 289 && ! defined BOOST_THREAD_DONT_PROVIDE_FUTURE_INVALID_AFTER_GET
Chris@16 290 #define BOOST_THREAD_PROVIDES_FUTURE_INVALID_AFTER_GET
Chris@16 291 #endif
Chris@16 292
Chris@16 293 // NESTED_LOCKS
Chris@16 294 #if ! defined BOOST_THREAD_PROVIDES_NESTED_LOCKS \
Chris@16 295 && ! defined BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS
Chris@16 296 #define BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS
Chris@16 297 #endif
Chris@16 298
Chris@16 299 // CONDITION
Chris@16 300 #if ! defined BOOST_THREAD_PROVIDES_CONDITION \
Chris@16 301 && ! defined BOOST_THREAD_DONT_PROVIDE_CONDITION
Chris@16 302 #define BOOST_THREAD_DONT_PROVIDE_CONDITION
Chris@16 303 #endif
Chris@16 304
Chris@16 305 #endif // BOOST_THREAD_VERSION>=4
Chris@16 306
Chris@16 307 // INTERRUPTIONS
Chris@16 308 #if ! defined BOOST_THREAD_PROVIDES_INTERRUPTIONS \
Chris@16 309 && ! defined BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS
Chris@16 310 #define BOOST_THREAD_PROVIDES_INTERRUPTIONS
Chris@16 311 #endif
Chris@16 312
Chris@16 313 // CORRELATIONS
Chris@16 314
Chris@16 315 // EXPLICIT_LOCK_CONVERSION.
Chris@16 316 #if defined BOOST_THREAD_PROVIDES_EXPLICIT_LOCK_CONVERSION
Chris@16 317 #define BOOST_THREAD_EXPLICIT_LOCK_CONVERSION explicit
Chris@16 318 #else
Chris@16 319 #define BOOST_THREAD_EXPLICIT_LOCK_CONVERSION
Chris@16 320 #endif
Chris@16 321
Chris@16 322 // BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN is defined if BOOST_THREAD_PROVIDES_SHARED_MUTEX_UPWARDS_CONVERSIONS
Chris@16 323 #if defined BOOST_THREAD_PROVIDES_SHARED_MUTEX_UPWARDS_CONVERSIONS \
Chris@16 324 && ! defined BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN
Chris@16 325 #define BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN
Chris@16 326 #endif
Chris@16 327
Chris@16 328 // For C++11 call_once interface the compiler MUST support constexpr.
Chris@16 329 // Otherwise once_flag would be initialized during dynamic initialization stage, which is not thread-safe.
Chris@16 330 #if defined(BOOST_THREAD_PROVIDES_ONCE_CXX11)
Chris@16 331 #if defined(BOOST_NO_CXX11_CONSTEXPR)
Chris@16 332 #undef BOOST_THREAD_PROVIDES_ONCE_CXX11
Chris@16 333 #endif
Chris@16 334 #endif
Chris@16 335
Chris@16 336 #if defined(BOOST_THREAD_PLATFORM_WIN32) && defined BOOST_THREAD_DONT_USE_DATETIME
Chris@16 337 #undef BOOST_THREAD_DONT_USE_DATETIME
Chris@16 338 #define BOOST_THREAD_USES_DATETIME
Chris@16 339 #endif
Chris@16 340
Chris@16 341 #if defined(BOOST_THREAD_PLATFORM_WIN32) && defined BOOST_THREAD_DONT_USE_CHRONO
Chris@16 342 #undef BOOST_THREAD_DONT_USE_CHRONO
Chris@16 343 #define BOOST_THREAD_USES_CHRONO
Chris@16 344 #endif
Chris@16 345
Chris@16 346 // BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 defined by default up to Boost 1.55
Chris@16 347 // BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0 defined by default up to Boost 1.55
Chris@16 348 #if defined BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0
Chris@16 349
Chris@16 350 #if ! defined BOOST_THREAD_PROVIDES_THREAD_EQ
Chris@16 351 #define BOOST_THREAD_PROVIDES_THREAD_EQ
Chris@16 352 #endif
Chris@16 353
Chris@16 354 #endif
Chris@16 355
Chris@101 356
Chris@101 357 //#if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES || defined BOOST_THREAD_USES_MOVE
Chris@101 358 #if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES
Chris@101 359 #define BOOST_THREAD_FUTURE_USES_OPTIONAL
Chris@101 360 #endif
Chris@101 361
Chris@16 362 #if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
Chris@16 363 # pragma warn -8008 // Condition always true/false
Chris@16 364 # pragma warn -8080 // Identifier declared but never used
Chris@16 365 # pragma warn -8057 // Parameter never used
Chris@16 366 # pragma warn -8066 // Unreachable code
Chris@16 367 #endif
Chris@16 368
Chris@16 369 #include <boost/thread/detail/platform.hpp>
Chris@16 370
Chris@16 371 #if defined(BOOST_THREAD_PLATFORM_WIN32)
Chris@16 372 #else
Chris@16 373 # if defined(BOOST_HAS_PTHREAD_DELAY_NP) || defined(BOOST_HAS_NANOSLEEP)
Chris@16 374 # define BOOST_THREAD_SLEEP_FOR_IS_STEADY
Chris@16 375 # endif
Chris@16 376 #endif
Chris@16 377
Chris@16 378 // provided for backwards compatibility, since this
Chris@16 379 // macro was used for several releases by mistake.
Chris@16 380 #if defined(BOOST_THREAD_DYN_DLL) && ! defined BOOST_THREAD_DYN_LINK
Chris@16 381 # define BOOST_THREAD_DYN_LINK
Chris@16 382 #endif
Chris@16 383
Chris@16 384 // compatibility with the rest of Boost's auto-linking code:
Chris@16 385 #if defined(BOOST_THREAD_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
Chris@16 386 # undef BOOST_THREAD_USE_LIB
Chris@101 387 # if !defined(BOOST_THREAD_USE_DLL)
Chris@101 388 # define BOOST_THREAD_USE_DLL
Chris@101 389 # endif
Chris@16 390 #endif
Chris@16 391
Chris@16 392 #if defined(BOOST_THREAD_BUILD_DLL) //Build dll
Chris@16 393 #elif defined(BOOST_THREAD_BUILD_LIB) //Build lib
Chris@16 394 #elif defined(BOOST_THREAD_USE_DLL) //Use dll
Chris@16 395 #elif defined(BOOST_THREAD_USE_LIB) //Use lib
Chris@16 396 #else //Use default
Chris@16 397 # if defined(BOOST_THREAD_PLATFORM_WIN32)
Chris@16 398 # if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN) \
Chris@16 399 || defined(__MINGW32__) || defined(MINGW32) || defined(BOOST_MINGW32)
Chris@16 400 //For compilers supporting auto-tss cleanup
Chris@16 401 //with Boost.Threads lib, use Boost.Threads lib
Chris@16 402 # define BOOST_THREAD_USE_LIB
Chris@16 403 # else
Chris@16 404 //For compilers not yet supporting auto-tss cleanup
Chris@16 405 //with Boost.Threads lib, use Boost.Threads dll
Chris@16 406 # define BOOST_THREAD_USE_DLL
Chris@16 407 # endif
Chris@16 408 # else
Chris@16 409 # define BOOST_THREAD_USE_LIB
Chris@16 410 # endif
Chris@16 411 #endif
Chris@16 412
Chris@16 413 #if defined(BOOST_HAS_DECLSPEC)
Chris@16 414 # if defined(BOOST_THREAD_BUILD_DLL) //Build dll
Chris@16 415 # define BOOST_THREAD_DECL BOOST_SYMBOL_EXPORT
Chris@16 416 //# define BOOST_THREAD_DECL __declspec(dllexport)
Chris@16 417
Chris@16 418 # elif defined(BOOST_THREAD_USE_DLL) //Use dll
Chris@16 419 # define BOOST_THREAD_DECL BOOST_SYMBOL_IMPORT
Chris@16 420 //# define BOOST_THREAD_DECL __declspec(dllimport)
Chris@16 421 # else
Chris@16 422 # define BOOST_THREAD_DECL
Chris@16 423 # endif
Chris@16 424 #elif (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
Chris@16 425 # define BOOST_THREAD_DECL BOOST_SYMBOL_VISIBLE
Chris@16 426
Chris@16 427 #else
Chris@16 428 # define BOOST_THREAD_DECL
Chris@16 429 #endif // BOOST_HAS_DECLSPEC
Chris@16 430
Chris@16 431 //
Chris@16 432 // Automatically link to the correct build variant where possible.
Chris@16 433 //
Chris@16 434 #if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_THREAD_NO_LIB) && !defined(BOOST_THREAD_BUILD_DLL) && !defined(BOOST_THREAD_BUILD_LIB)
Chris@16 435 //
Chris@16 436 // Tell the autolink to link dynamically, this will get undef'ed by auto_link.hpp
Chris@16 437 // once it's done with it:
Chris@16 438 //
Chris@16 439 #if defined(BOOST_THREAD_USE_DLL)
Chris@16 440 # define BOOST_DYN_LINK
Chris@16 441 #endif
Chris@16 442 //
Chris@16 443 // Set the name of our library, this will get undef'ed by auto_link.hpp
Chris@16 444 // once it's done with it:
Chris@16 445 //
Chris@16 446 #if defined(BOOST_THREAD_LIB_NAME)
Chris@16 447 # define BOOST_LIB_NAME BOOST_THREAD_LIB_NAME
Chris@16 448 #else
Chris@16 449 # define BOOST_LIB_NAME boost_thread
Chris@16 450 #endif
Chris@16 451 //
Chris@16 452 // If we're importing code from a dll, then tell auto_link.hpp about it:
Chris@16 453 //
Chris@16 454 // And include the header that does the work:
Chris@16 455 //
Chris@16 456 #include <boost/config/auto_link.hpp>
Chris@16 457 #endif // auto-linking disabled
Chris@16 458
Chris@16 459 #endif // BOOST_THREAD_CONFIG_WEK1032003_HPP
Chris@16 460
Chris@16 461 // Change Log:
Chris@16 462 // 22 Jan 05 Roland Schwarz (speedsnail)
Chris@16 463 // Usage of BOOST_HAS_DECLSPEC macro.
Chris@16 464 // Default again is static lib usage.
Chris@16 465 // BOOST_DYN_LINK only defined when autolink included.