//go:build linux package maintenanceexec import "os" type processPipes struct{ inR, inW, outR, outW, contextR, contextW *os.File } func newPipes() (p *processPipes, err error) { p = &processPipes{} defer func() { if err != nil { p.close() } }() if p.inR, p.inW, err = os.Pipe(); err != nil { return p, err } if p.outR, p.outW, err = os.Pipe(); err != nil { return p, err } if p.contextR, p.contextW, err = os.Pipe(); err != nil { return p, err } return p, nil } func (p *processPipes) close() { for _, f := range []*os.File{p.inR, p.inW, p.outR, p.outW, p.contextR, p.contextW} { if f != nil { f.Close() } } }