fixed add_custom_target() in intrusice-set and set
[libcds.git] / readme.md
index 9b45b5778a67cba32726bb4ad2b1c23473accf6a..57a211a151edd30d5cb78d464f6530f92d88f6f2 100644 (file)
--- a/readme.md
+++ b/readme.md
@@ -24,7 +24,7 @@ The library contains the implementations of the following containers:
   - several algo for lock-free queue, including classic Michael & Scott algorithm and its derivatives,\r
     the flat combining queue, the segmented queue.\r
   - several implementation of unordered set/map - lock-free and fine-grained lock-based\r
-  - [flat-combining] (http://mcg.cs.tau.ac.il/projects/projects/flat-combining) technique\r
+  - [flat-combining](http://mcg.cs.tau.ac.il/projects/projects/flat-combining) technique\r
   - lock-free [skip-list](http://en.wikipedia.org/wiki/Skip_list)\r
   - lock-free FeldmanHashMap/Set [Multi-Level Array Hash](http://samos-conference.com/Resources_Samos_Websites/Proceedings_Repository_SAMOS/2013/Files/2013-IC-20.pdf)\r
     with thread-safe bidirectional iterator support\r
@@ -46,6 +46,16 @@ Evolution of libcds (Gource visualization by Landon Wilkins): https://www.youtub
    - *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
@@ -130,10 +140,6 @@ References
              Implementations of Read-Copy Update"\r
              [pdf](http://www.dorsal.polymtl.ca/sites/www.dorsal.polymtl.ca/files/publications/desnoyers-ieee-urcu-submitted.pdf)\r
 \r
-*Memory allocation*\r
-  - [2004] M.Michael "Scalable Lock-free Dynamic Memory Allocation"\r
-            [pdf](http://www.research.ibm.com/people/m/michael/pldi-2004.pdf)\r
-\r
 *Flat Combining* technique\r
   - [2010] Hendler, Incze, Shavit and Tzafrir "Flat Combining and the Synchronization-Parallelism Tradeoff"\r
             [pdf](http://www.cs.bgu.ac.il/~hendlerd/papers/flat-combining.pdf)\r