Статистика пишет пиковый размер. Реализуйте updateMax(m *atomic.Int64, v int64): запишите v, только если он больше текущего — CAS-loop.
- Задача
- Решение
- Обсуждение
UpdateMax: CAS-loop для максимума
GolangРешение
func updateMax(m *atomic.Int64, v int64) {
for {
old := m.Load()
if v <= old {
return
}
if m.CompareAndSwap(old, v) {
return
}
}
}