fix: harden pi maintenance lifecycle
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
//go:build !windows
|
||||
|
||||
package pi
|
||||
|
||||
import "os"
|
||||
|
||||
// durableReplace acknowledges both the data file and its directory entry. A successful return
|
||||
// is the strongest atomic replacement guarantee supported by Unix filesystems.
|
||||
func durableReplace(temporary, target, directory string) error {
|
||||
if err := os.Rename(temporary, target); err != nil { return err }
|
||||
dir, err := os.Open(directory)
|
||||
if err != nil { return err }
|
||||
defer dir.Close()
|
||||
return dir.Sync()
|
||||
}
|
||||
Reference in New Issue
Block a user