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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
eg, _ := errgroup.WithContext(context.TODO())
|
|
||||||
for _, fi := range fis {
|
for _, fi := range fis {
|
||||||
func(fi os.DirEntry) {
|
if err := ls.RemoveBuilderNode(builderName, fi.Name()); err != nil {
|
||||||
eg.Go(func() error {
|
return err
|
||||||
return ls.RemoveBuilderNode(builderName, fi.Name())
|
}
|
||||||
})
|
|
||||||
}(fi)
|
|
||||||
}
|
|
||||||
if err := eg.Wait(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return os.RemoveAll(dir)
|
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 {
|
func (ls *LocalState) RemoveBuilderNode(builderName string, nodeName string) error {
|
||||||
if builderName == "" {
|
if builderName == "" {
|
||||||
return errors.Errorf("builder name empty")
|
return errors.Errorf("builder name empty")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user