mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-29 00:47:42 +08:00
Merge pull request #2078 from crazy-max/fix-rm-state-group
build: fix racy localstate group removal
This commit is contained in:
commit
7d2c9d5ef5
@ -127,22 +127,17 @@ func (ls *LocalState) RemoveBuilder(builderName string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
eg, _ := errgroup.WithContext(context.TODO())
|
||||
for _, fi := range fis {
|
||||
func(fi os.DirEntry) {
|
||||
eg.Go(func() error {
|
||||
return ls.RemoveBuilderNode(builderName, fi.Name())
|
||||
})
|
||||
}(fi)
|
||||
}
|
||||
if err := eg.Wait(); err != nil {
|
||||
return err
|
||||
if err := ls.RemoveBuilderNode(builderName, fi.Name()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return os.RemoveAll(dir)
|
||||
}
|
||||
|
||||
// RemoveBuilderNode removes all refs for a builder node.
|
||||
// This func is not safe for concurrent use from multiple goroutines.
|
||||
func (ls *LocalState) RemoveBuilderNode(builderName string, nodeName string) error {
|
||||
if builderName == "" {
|
||||
return errors.Errorf("builder name empty")
|
||||
|
Loading…
x
Reference in New Issue
Block a user