The Concurrent Data Structures (CDS) library is a collection of concurrent containers\r
that don't require external (manual) synchronization for shared access, and safe memory reclamation (SMR) \r
algorithms like [Hazard Pointer](http://en.wikipedia.org/wiki/Hazard_pointer) \r
-and user-space [RCU](http://en.wikipedia.org/wiki/Read-copy-update). \r
+and user-space [RCU](http://en.wikipedia.org/wiki/Read-copy-update) that is used as an epoch-based SMR.\r
+\r
CDS is mostly header-only template library. Only SMR core implementation is segregated to .so/.dll file.\r
\r
The library contains the implementations of the following containers:\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
- 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
+ - Bronson's et al algorithm for fine-grained lock-based AVL tree\r
\r
Generally, each container has an intrusive and non-intrusive (STL-like) version belonging to \r
-*cds::intrusive* and *cds::container* namespace respectively.\r
+*cds::intrusive* and *cds::container* namespace respectively. \r
\r
Version 2.x of the library is written on C++11 and can be compiled by GCC 4.8+, clang 3.3+, Intel C++ 15+, \r
and MS VC++ 12 (2013) Update 4.\r