X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=readme.md;h=19c5c484a454409d7a29fb79bf2846451e094bf3;hb=8a05c794447f5898d8451f09c60e12dd8501fdb3;hp=07c4d811c7f5772a0d50c32bc85078a403394107;hpb=f2fece6b437c0639ee65cc48185d65a0a6476b8c;p=libcds.git diff --git a/readme.md b/readme.md index 07c4d811..19c5c484 100644 --- a/readme.md +++ b/readme.md @@ -15,7 +15,8 @@ The coverity dataset is about 4G of size and about 1G in compressed state so it The Concurrent Data Structures (CDS) library is a collection of concurrent containers that don't require external (manual) synchronization for shared access, and safe memory reclamation (SMR) algorithms like [Hazard Pointer](http://en.wikipedia.org/wiki/Hazard_pointer) -and user-space [RCU](http://en.wikipedia.org/wiki/Read-copy-update). +and user-space [RCU](http://en.wikipedia.org/wiki/Read-copy-update) that is used as an epoch-based SMR. + CDS is mostly header-only template library. Only SMR core implementation is segregated to .so/.dll file. The library contains the implementations of the following containers: @@ -25,9 +26,12 @@ The library contains the implementations of the following containers: - several implementation of unordered set/map - lock-free and fine-grained lock-based - [flat-combining] (http://mcg.cs.tau.ac.il/projects/projects/flat-combining) technique - lock-free [skip-list](http://en.wikipedia.org/wiki/Skip_list) + - lock-free FeldmanHashMap/Set [Multi-Level Array Hash](http://samos-conference.com/Resources_Samos_Websites/Proceedings_Repository_SAMOS/2013/Files/2013-IC-20.pdf) + with thread-safe bidirectional iterator support + - Bronson's et al algorithm for fine-grained lock-based AVL tree Generally, each container has an intrusive and non-intrusive (STL-like) version belonging to -*cds::intrusive* and *cds::container* namespace respectively. +*cds::intrusive* and *cds::container* namespace respectively. 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+, and MS VC++ 12 (2013) Update 4. @@ -36,6 +40,10 @@ Download the latest release from http://sourceforge.net/projects/libcds/files/ See online doxygen-generated doc here: http://libcds.sourceforge.net/doc/cds-api/index.html +**How to build** + - *nix: [use CMake](build/cmake/readme.md) + - Windows: use MS Visual C++ 2015 project + **Pull request requirements** - Pull-request to *master* branch will be unconditionally rejected - *integration* branch is intended for pull-request. Usually, *integration* branch is the same as *master*