Code Room
Code reviewMedium
Question
Review this C++ statistics accumulator shared across threads.
Two of these three updates are broken under concurrency. Which two and why?
What a strong answer looks like
Separate real bugs from style. Rank issues by severity, point at the root cause rather than the symptom, and suggest a concrete fix — specific and kind.
Learn the concepts
struct Stats { std::atomic<long> count{0}; std::atomic<double> sum{0.0}; long max = 0; // plain void record(double x) { count.fetch_add(1, std::memory_order_relaxed); sum.store(sum.load() + x); // (1) if ((long)x > max) max = (long)x; // (2) }};Run or narrate your approach, then ask the coach.