struct elem_t { uint64_t prev_time; uint64_t stats; | 0x1337
struct elem_t
{
uint64_t prev_time;
uint64_t stats;
mutex_t mtx;
};
....
// Код некоторой функции, вызываемой в разных потоках. elem aka elem_t - шарим между потоками.
uint64_t curr_time = get_current_time_ns();
elem->mtx.l();
elem->stats += curr_time - elem->prev_time;
elem->prev_time = curr_time;
elem->mtx.u();