If sync fails then close is never called. We should always be calling close on the file. Co-authored-by: Hendrik Appel <happel@europe.altair.com>
This commit is contained in:
@@ -81,13 +81,20 @@ func (df *DiskFile) Close() error {
|
|||||||
if df.File == nil {
|
if df.File == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if err := df.Sync(); err != nil {
|
err := df.Sync()
|
||||||
return err
|
var err1 error
|
||||||
}
|
if df.File != nil {
|
||||||
if err := df.File.Close(); err != nil {
|
// always try to close
|
||||||
return err
|
err1 = df.File.Close()
|
||||||
}
|
}
|
||||||
|
// assume closed
|
||||||
df.File = nil
|
df.File = nil
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err1 != nil {
|
||||||
|
return err1
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user