profiling/mutex/increment.go (18 lines of code) (raw):

package mutex import "sync" func Increment(n int) int { var mu sync.Mutex count := 0 wg := sync.WaitGroup{} wg.Add(n) for i := 0; i < n; i++ { go func() { mu.Lock() count++ mu.Unlock() wg.Done() }() } wg.Wait() return count }