cds
2.3.2
|
TreiberStack default type traits. More...
#include <cds/container/treiber_stack.h>
Public Types | |
typedef cds::backoff::Default | back_off |
Back-off strategy. | |
typedef CDS_DEFAULT_ALLOCATOR | allocator |
Node allocator. | |
typedef opt::v::relaxed_ordering | memory_model |
C++ memory ordering model. More... | |
typedef cds::atomicity::empty_item_counter | item_counter |
Item counting feature; by default, disabled. Use cds::atomicity::item_counter to enable item counting. | |
typedef empty_stat | stat |
Internal statistics (by default, no internal statistics) More... | |
Elimination back-off traits | |
typedef cds::backoff::delay | elimination_backoff |
Back-off strategy to wait for elimination, default is cds::backoff::delay<> | |
typedef opt::v::initialized_static_buffer< int, 4 > | buffer |
Buffer type for elimination array. More... | |
typedef opt::v::c_rand | random_engine |
Random engine to generate a random position in elimination array. | |
typedef cds::sync::spin | lock_type |
Lock type used in elimination, default is cds::sync::spin. | |
static constexpr const bool | enable_elimination = false |
Enable elimination back-off; by default, it is disabled. | |
TreiberStack default type traits.
Buffer type for elimination array.
Possible types are opt::v::initialized_static_buffer
, opt::v::initialized_dynamic_buffer
. The buffer can be any size: Exp2
template parameter of those classes can be false
. The size should be selected empirically for your application and hardware, there are no common rules for that. Default is opt::v::initialized_static_buffer< any_type, 4 >
.
C++ memory ordering model.
Can be opt::v::relaxed_ordering (relaxed memory model, the default) or opt::v::sequential_consistent (sequentially consisnent memory model).
Internal statistics (by default, no internal statistics)
Possible types are: treiber_stack::stat, treiber_stack::empty_stat (the default), user-provided class that supports treiber_stack::stat interface.