[Libcds-user] libcds 1.0.0 is available
Concurrent Data Structure library
Brought to you by:
khizmax
|
From: khizmax <kh...@gm...> - 2011-12-31 16:32:22
|
This version is completely rewritten to support intrusive version
of lock-free containers
and more lightweight garbage collectors interface.
The class hierarchy and interfaces have been completely
reimplemented from scratch.
1. Added: intrusive containers. Many lock-free containers in libcds
have the intrusive
counterparts. The library is fully refactored to support
intrusive containers.
Class hierarchy is changed: almost all non-intrusive container
classes are based
on their intrusive versions.
Two new namespace is added:
cds::intrusive - for intrusive containers
cds::container - for non-intrusive containers
Namespaces by container type (cds::queue, cds::map and so on)
have been removed.
2. Added: New option-based approach is used for class declaration
instead
old traits-based one. This approach allows to declare template
arguments
in position-independent manner that is very useful for complex
template declarations.
Option-based declarations use C++0x variadic templates if
compiler supports it (GCC),
otherwise (MS VC) an emulation is used.
3. Changed: garbage collectors interface is generalized.
cds::gc::GC (where GC is
one of HP, HRC, PTB) classes has been added.
4. Removed: tagged pointer GC. This GC
- unsafe for complex data structure
- x86-specific since it requires double-width CAS primitive
- memory-consuming since it requires separate free-list for each
type stored in the containers
5. Default threading model is changed (see doc for cds::threading
namespace):
- for Windows and MSVC++, CDS_THREADING_WIN_TLS is the default now
- for *nix and GCC, CDS_THREADING_PTHREAD is the default now
6. Added GCC 4.6 support (constexpr)
7. Added Microsoft Visual Studio 2010 (vc10) solution
|