|
cds
2.3.2
|
Atomic item counter. More...
#include <cds/algo/atomic.h>
Public Types | |
| typedef atomics::atomic_size_t | atomic_type |
| atomic type used | |
| typedef size_t | counter_type |
| Integral item counter type (size_t) | |
Public Member Functions | |
| item_counter () | |
| Default ctor initializes the counter to zero. | |
| counter_type | value (atomics::memory_order order=atomics::memory_order_relaxed) const |
| Returns current value of the counter. | |
| operator counter_type () const | |
| Same as value() with relaxed memory ordering. | |
| atomic_type & | getAtomic () |
| Returns underlying atomic interface. | |
| const atomic_type & | getAtomic () const |
| Returns underlying atomic interface (const) | |
| counter_type | inc (atomics::memory_order order=atomics::memory_order_relaxed) |
| Increments the counter. Semantics: postincrement. | |
| counter_type | inc (counter_type count, atomics::memory_order order=atomics::memory_order_relaxed) |
| Increments the counter. Semantics: postincrement. | |
| counter_type | dec (atomics::memory_order order=atomics::memory_order_relaxed) |
| Decrements the counter. Semantics: postdecrement. | |
| counter_type | dec (counter_type count, atomics::memory_order order=atomics::memory_order_relaxed) |
| Decrements the counter. Semantics: postdecrement. | |
| counter_type | operator++ () |
| Preincrement. | |
| counter_type | operator++ (int) |
| Postincrement. | |
| counter_type | operator-- () |
| Predecrement. | |
| counter_type | operator-- (int) |
| Postdecrement. | |
| counter_type | operator+= (counter_type count) |
Increment by count. | |
| counter_type | operator-= (counter_type count) |
Decrement by count. | |
| void | reset (atomics::memory_order order=atomics::memory_order_relaxed) |
| Resets count to 0. | |
Atomic item counter.
This class is simplified interface around std::atomic_size_t. The class supports getting current value of the counter and increment/decrement its value.
See also: improved version that eliminates false sharing - cache_friendly_item_counter.