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
}
