- \p boost.thread (thread-loal storage support), boost.system
- \p google-test
+ Some parts of libcds may depend on DCAS (double-width compare-and-swap) atomic primitive if
+ the target architecture supports it. For x86, cmake build script enables -mcx16 compiler flag that
+ switches DCAS support on. You may manually disable DCAS support with the following command line flags
+ in GCC/clang (for MS VC++ compiler DCAS is not supported):
+ - \p -DCDS_DISABLE_128BIT_ATOMIC - for 64bit build
+ - \p -DCDS_DISABLE_64BIT_ATOMIC - for 32bit build
+ @warning All your projects AND libcds MUST be compiled with the same flags - either with DCAS support or without it.
+
\par Windows build
Prerequisites: for building <b>cds</b> library and test suite you need:
%DHP is an adaptive variant of classic \p cds::gc::HP, see @ref cds_garbage_collectors_comparison "Compare HP implementation"
+ @note: Internally, %DHP depends on free-list implementation. There are
+ DCAS-based free-list \p cds::intrusive::TaggedFreeList and more complicated CAS-based free-list
+ \p cds::intrusive::FreeList. For x86 architecture and GCC/clang, libcds selects appropriate free-list
+ based on \p -mcx16 compiler flag. You may manually disable DCAS support specifying
+ \p -DCDS_DISABLE_128BIT_ATOMIC for 64bit build or \p -DCDS_DISABLE_64BIT_ATOMIC for 32bit build
+ in compiler command line. All your projects and libcds MUST be compiled with the same flags -
+ either with DCAS support or without it.
+ For MS VC++ compiler DCAS is not supported.
+
See \ref cds_how_to_use "How to use" section for details how to apply SMR.
*/
class DHP
- *nix: [use CMake](build/cmake/readme.md)\r
- Windows: use MS Visual C++ 2015 project\r
\r
+Some parts of libcds may depend on DCAS (double-width compare-and-swap) atomic primitive if\r
+the target architecture supports it. For x86, cmake build script enables `-mcx16` compiler flag that\r
+switches DCAS support on. You may manually disable DCAS support with the following command line flags\r
+in GCC/clang (for MS VC++ compiler DCAS is not supported):\r
+ - `-DCDS_DISABLE_128BIT_ATOMIC` - for 64bit build\r
+ - `-DCDS_DISABLE_64BIT_ATOMIC` - for 32bit build\r
+\r
+**All your projects AND libcds MUST be compiled with the same flags - either with DCAS support or without it.**\r
+ \r
+ \r
**Pull request requirements**\r
- Pull-request to *master* branch will be unconditionally rejected\r
- *integration* branch is intended for pull-request. Usually, *integration* branch is the same as *master*\r