if err != nil {
return err
}
+ defer dir.Close()
for {
fis, err := dir.Readdir(1 << 10)
if err != nil {
}
}
}
- return dir.Close()
+ return nil
}
func cleanupWalker(root, what string) error {
}
}
}
- return dir.Close()
+ return nil
}
}
inode, err := inodeFromFile(fd)
if err != nil {
+ fd.Close()
return err
}
if inode.Size != theirInode.Size {
}
tracef(CDebug, "ood: %s%s -> %s: same hash", indent, tgtOrig, dep)
}
- fd.Close() // optimization not to hold it for long
+ fd.Close()
if dep == tgt {
tracef(CDebug, "ood: %s%s -> %s: same target", indent, tgtOrig, dep)
Finish:
if err != nil {
err = TgtError{tgtOrig, err}
+ fdLock.Close()
}
errs <- err
}()
runErr.Started = &started
fdStdout, err = os.OpenFile(stdoutPath, os.O_RDWR, os.FileMode(0666))
if err != nil {
+ if fdStderr != nil {
+ fdStderr.Close()
+ }
runErr.Err = err
errs <- runErr
return
cmd.Stdout = fdStdout
fdDep, err = os.OpenFile(fdDepPath, os.O_WRONLY|os.O_APPEND, os.FileMode(0666))
if err != nil {
+ if fdStderr != nil {
+ fdStderr.Close()
+ }
+ fdStdout.Close()
runErr.Err = err
errs <- runErr
return
return nil, err
}
depInfo, err := depRead(fdDep)
+ fdDep.Close()
if err != nil {
return nil, err
}
- fdDep.Close()
for _, m := range depInfo.ifchanges {
depTgt := m["Target"]
depTgtAbsPath, err := filepath.Abs(path.Join(cwd, depTgt))
return err
}
redoFis, err := redoDir.Readdir(0)
+ redoDir.Close()
if err != nil {
return err
}
tgts[name[:len(name)-len(DepSuffix)]] = struct{}{}
}
}
- redoDir.Close()
} else {
if err = targetsCollect(pth, tgts); err != nil {
return err
}
}
}
- return dir.Close()
+ return nil
}
func targetsWalker(tgts []string) ([]string, error) {