Флаг этапа должен выставиться ровно один раз. Реализуйте setOnce(flag *atomic.Int64, value int64) bool через flag.CompareAndSwap(0, value).
- Задача
- Решение
- Обсуждение
SetOnce: первый CAS
GolangРешение
func setOnce(flag *atomic.Int64, value int64) bool {
return flag.CompareAndSwap(0, value)
}