vendor: github.com/moby/buildkit 6bd81372ad6f (master)

- tests: implement NetNSDetached method

full diff: 6e200afad5...6bd81372ad

Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn
2024-01-18 00:46:45 +01:00
parent 528e3ba259
commit dbaad32f49
32 changed files with 945 additions and 351 deletions

View File

@ -36,6 +36,15 @@ func (ps *MultiWriter) Add(pw Writer) {
if !ok {
return
}
if pws, ok := rw.(*MultiWriter); ok {
if pws.contains(ps) {
// this would cause a deadlock, so we should panic instead
// NOTE: this can be caused by a cycle in the scheduler states,
// which is created by a series of unfortunate edge merges
panic("multiwriter loop detected")
}
}
ps.mu.Lock()
plist := make([]*Progress, 0, len(ps.items))
plist = append(plist, ps.items...)
@ -102,3 +111,24 @@ func (ps *MultiWriter) writeRawProgress(p *Progress) error {
func (ps *MultiWriter) Close() error {
return nil
}
func (ps *MultiWriter) contains(pw rawProgressWriter) bool {
ps.mu.Lock()
defer ps.mu.Unlock()
_, ok := ps.writers[pw]
if ok {
return true
}
for w := range ps.writers {
w, ok := w.(*MultiWriter)
if !ok {
continue
}
if w.contains(pw) {
return true
}
}
return false
}