| cds
    2.3.2
    | 
SegmentedQueue default type traits. More...
#include <cds/container/segmented_queue.h>
| Public Types | |
| enum | { alignment = opt::cache_line_alignment } | 
| Alignment of critical data, default is cache line alignment. See cds::opt::alignment option specification. | |
| enum | { padding = cds::intrusive::segmented_queue::traits::padding } | 
| Padding of segment data, default is no special padding.  More... | |
| typedef CDS_DEFAULT_ALLOCATOR | node_allocator | 
| Item allocator. Default is CDS_DEFAULT_ALLOCATOR. | |
| typedef atomicity::item_counter | item_counter | 
| Item counter, default is atomicity::item_counter.  More... | |
| typedef segmented_queue::empty_stat | stat | 
| Internal statistics, possible predefined types are stat, empty_stat (the default) | |
| typedef opt::v::relaxed_ordering | memory_model | 
| Memory model, default is opt::v::relaxed_ordering. See cds::opt::memory_model for the full list of possible types. | |
| typedef CDS_DEFAULT_ALLOCATOR | allocator | 
| Segment allocator. Default is CDS_DEFAULT_ALLOCATOR. | |
| typedef cds::sync::spin | lock_type | 
| Lock type used to maintain an internal list of allocated segments. | |
| typedef cds::opt::v::random2_permutation< int > | permutation_generator | 
| Random permutation generator for sequence [0, quasi_factor) | |
SegmentedQueue default type traits.
Item counter, default is atomicity::item_counter.
The item counting is an essential part of segmented queue algorithm. The empty() member function is based on checking size() == 0. Therefore, dummy item counter like atomicity::empty_item_counter is not the proper counter. 
| anonymous enum | 
Padding of segment data, default is no special padding.
The segment is just an array of atomic data pointers, so, the high load leads to false sharing and performance degradation. A padding of segment data can eliminate false sharing issue. On the other hand, the padding leads to increase segment size.