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
.