1
0
mirror of https://github.com/mgechev/revive.git synced 2025-10-08 22:41:54 +02:00
Files
revive/testdata/use_waitgroup_go.go
2025-08-26 19:04:46 +02:00

54 lines
1.1 KiB
Go

package fixtures
import (
"sync"
)
// Rule use-waitgroup-go shall not match because this file is a package with Go version < 1.25
func useWaitGroupGo() {
wg := sync.WaitGroup{}
wg.Add(1)
go func() {
defer wg.Done()
doSomething()
}()
wg.Add(1)
go func() {
doSomething()
wg.Done()
}()
// from golang.org/x/tools/go/packages/packages.go/parseFiles
for i, file := range filenames {
wg.Add(1)
go func(i int, filename string) {
parsed[i], errors[i] = ld.parseFile(filename)
wg.Done()
}(i, file)
}
wg.Wait()
// from kubernetes/pkg/kubelet/cm/devicemanager/manager_test.go/TestGetTopologyHintsWithUpdates
// notice the rule spots a wg.Add(2) (vs wg.Add(1)) therefore using wg.Go is possible but requires
// replacing the wg.Add and the next two go statements with two wg.Go
wg.Add(2)
go func() {
defer wg.Done()
for i := 0; i < test.count; i++ {
// simulate the device plugin to send device updates
mimpl.genericDeviceUpdateCallback(testResourceName, devs)
}
updated.Store(true)
}()
go func() {
defer wg.Done()
for !updated.Load() {
test.testfunc(mimpl)
}
}()
wg.Wait()
}