#include #include #include std::atomic x(0),y(0),z(0); std::atomic go(false); unsigned const loop_count=10; struct read_values { int x,y,z; }; read_values values1[loop_count]; read_values values2[loop_count]; read_values values3[loop_count]; read_values values4[loop_count]; read_values values5[loop_count]; void increment(std::atomic* var_to_inc,read_values* values) { while(!go) std::this_thread::yield(); for(unsigned i=0;istore(i+1,std::memory_order_relaxed); std::this_thread::yield(); } } void read_vals(read_values* values) { while(!go) std::this_thread::yield(); for(unsigned i=0;i