6#include "TTauri/Foundation/wfree_unordered_map.hpp"
13constexpr int MAX_NR_COUNTERS = 1024;
17 int64_t previous_value;
31 tt_no_inline
void add_to_map()
const noexcept {
35 int64_t increment()
const noexcept {
36 ttlet value = counter.
fetch_add(1, std::memory_order_relaxed);
38 if (tt_unlikely(value == 0)) {
45 int64_t read()
const noexcept {
46 return counter.
load(std::memory_order_relaxed);
53inline int64_t increment_counter() noexcept
59inline int64_t read_counter() noexcept
61 return counter_functor<Tag>{}.read();
69 auto &
item = counter_map[tag];
71 ttlet *
const count_ptr =
item.counter;
72 ttlet
count = count_ptr !=
nullptr ?
item.counter->load(std::memory_order_relaxed) : 0;
73 ttlet count_since_last_read =
count -
item.previous_value;
75 return {
count, count_since_last_read};
Definition counters.hpp:15
Definition counters.hpp:27
Definition range_map.hpp:119
Definition wfree_unordered_map.hpp:55