profiling/mutex/atomic.go (18 lines of code) (raw):
package mutex
import (
"sync"
"sync/atomic"
)
func IncrementAtomic(n int) int64 {
var count int64
wg := sync.WaitGroup{}
wg.Add(n)
for i := 0; i < n; i++ {
go func() {
atomic.AddInt64(&count, 1)
wg.Done()
}()
}
wg.Wait()
return count
}