|
cds
2.3.2
|
SkipListSet traits
More...
#include <cds/intrusive/details/skip_list_base.h>
Public Types | |
| typedef base_hook | hook |
| Hook used. More... | |
| typedef opt::none | compare |
| Key comparison functor. More... | |
| typedef opt::none | less |
| specifies binary predicate used for key compare. More... | |
| typedef opt::v::empty_disposer | disposer |
| Disposer. More... | |
| typedef atomicity::empty_item_counter | item_counter |
| Item counter. More... | |
| typedef opt::v::relaxed_ordering | memory_model |
| C++ memory ordering model. More... | |
| typedef turbo32 | random_level_generator |
| Random level generator. More... | |
| typedef CDS_DEFAULT_ALLOCATOR | allocator |
| Allocator. More... | |
| typedef cds::backoff::Default | back_off |
| back-off strategy More... | |
| typedef empty_stat | stat |
| Internal statistics. More... | |
| typedef opt::v::rcu_throw_deadlock | rcu_check_deadlock |
| RCU deadlock checking policy (only for RCU-based SkipListSet) More... | |
SkipListSet traits
Allocator.
Although the skip-list is an intrusive container, an allocator should be provided to maintain variable randomly-calculated height of the node since the node can contain up to 32 next pointers. The allocator specified is used to allocate an array of next pointers for nodes which height is more than 1.
back-off strategy
If the option is not specified, the cds::backoff::Default is used.
Key comparison functor.
No default functor is provided. If the option is not specified, the less is used.
| typedef opt::v::empty_disposer cds::intrusive::skip_list::traits::disposer |
Disposer.
The functor used for dispose removed items. Default is opt::v::empty_disposer.
Hook used.
Possible values are: skip_list::base_hook, skip_list::member_hook, skip_list::traits_hook.
Item counter.
The type for item counting feature. By default, item counting is disabled (atomicity::empty_item_counter), atomicity::item_counter or atomicity::cache_friendly_item_counter enables it.
specifies binary predicate used for key compare.
Default is std::less<T>.
C++ memory ordering model.
List of available memory ordering see opt::memory_model
Random level generator.
The random level generator is an important part of skip-list algorithm. The node height in the skip-list have a probabilistic distribution where half of the nodes that have level i pointers also have level i+1 pointers (i = 0..30). So, the height of a node is in range [0..31].
See skip_list::random_level_generator option setter.
RCU deadlock checking policy (only for RCU-based SkipListSet)
List of available options see opt::rcu_check_deadlock
Internal statistics.
By default, internal statistics is disabled (skip_list::empty_stat). Use skip_list::stat to enable it.