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
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
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
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
- 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
-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
+Version 2.x of the library is written on C++11 and can be compiled by GCC 4.8+, clang 3.6+, Intel C++ 15+, \r
+and MS VC++ 12 (2013) Update 4 and above\r
\r
Download the latest release from http://sourceforge.net/projects/libcds/files/\r
\r
See online doxygen-generated doc here: http://libcds.sourceforge.net/doc/cds-api/index.html\r
\r
\r
Download the latest release from http://sourceforge.net/projects/libcds/files/\r
\r
See online doxygen-generated doc here: http://libcds.sourceforge.net/doc/cds-api/index.html\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
**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
- *SegmentedQueue*: [2010] Afek, Korland, Yanovsky "Quasi-Linearizability: relaxed consistency for improved concurrency"\r
[pdf](http://mcg.cs.tau.ac.il/papers/opodis2010-quasi.pdf)\r
- *FCQueue* - flat-combining wrapper for *std::queue*\r
- *SegmentedQueue*: [2010] Afek, Korland, Yanovsky "Quasi-Linearizability: relaxed consistency for improved concurrency"\r
[pdf](http://mcg.cs.tau.ac.il/papers/opodis2010-quasi.pdf)\r
- *FCQueue* - flat-combining wrapper for *std::queue*\r
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
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
*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
*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