diff --git a/ConflictSet.cpp b/ConflictSet.cpp index d28e568..0c6d74d 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -719,6 +719,9 @@ struct ReadContext { int64_t prefix_read_iterations_accum = 0; int64_t range_read_iterations_accum = 0; int64_t range_read_node_scan_accum = 0; + int64_t commits_accum = 0; + int64_t conflicts_accum = 0; + int64_t too_olds_accum = 0; ConflictSet::Impl *impl; }; @@ -3114,9 +3117,6 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { void check(const ReadRange *reads, Result *result, int count) { ReadContext tls; tls.impl = this; - int commits_accum = 0; - int conflicts_accum = 0; - int too_olds_accum = 0; int64_t check_byte_accum = 0; for (int i = 0; i < count; ++i) { const auto &r = reads[i]; @@ -3134,9 +3134,9 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { InternalVersionT(reads[i].readVersion), &tls)) ? Commit : Conflict; - commits_accum += result[i] == Commit; - conflicts_accum += result[i] == Conflict; - too_olds_accum += result[i] == TooOld; + tls.commits_accum += result[i] == Commit; + tls.conflicts_accum += result[i] == Conflict; + tls.too_olds_accum += result[i] == TooOld; } point_read_total.add(tls.point_read_accum); prefix_read_total.add(tls.prefix_read_accum); @@ -3148,9 +3148,9 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { point_read_iterations_total.add(tls.point_read_iterations_accum); prefix_read_iterations_total.add(tls.prefix_read_iterations_accum); range_read_iterations_total.add(tls.range_read_iterations_accum); - commits_total.add(commits_accum); - conflicts_total.add(conflicts_accum); - too_olds_total.add(too_olds_accum); + commits_total.add(tls.commits_accum); + conflicts_total.add(tls.conflicts_accum); + too_olds_total.add(tls.too_olds_accum); check_bytes_total.add(check_byte_accum); }