X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=blobdiff_plain;f=src%2Ftmp.go;h=4a43eaa41a2675969f0d7109fe362f5304c93866;hp=aee58677518a562c55d7be7c56931061b2dbf83c;hb=891cee4997bb0a269d4b2f35311bab104bdc3283;hpb=53b736c0d8998982b232e8f25d27753ea3a1e309 diff --git a/src/tmp.go b/src/tmp.go index aee5867..4a43eaa 100644 --- a/src/tmp.go +++ b/src/tmp.go @@ -28,6 +28,12 @@ import ( "time" ) +var NoSync bool + +func init() { + NoSync = os.Getenv(CfgNoSync) != "" +} + func TempFile(dir, prefix string) (*os.File, error) { // Assume that probability of suffix collision is negligible suffix := strconv.FormatInt(time.Now().UnixNano()+int64(os.Getpid()), 16) @@ -77,6 +83,9 @@ func (tmp *TmpFileWHash) Cancel() { } func DirSync(dirPath string) error { + if NoSync { + return nil + } fd, err := os.Open(dirPath) if err != nil { return err @@ -102,9 +111,11 @@ func (tmp *TmpFileWHash) Commit(dir string) error { tmp.Fd.Close() return err } - if err = tmp.Fd.Sync(); err != nil { - tmp.Fd.Close() - return err + if !NoSync { + if err = tmp.Fd.Sync(); err != nil { + tmp.Fd.Close() + return err + } } if err = tmp.Fd.Close(); err != nil { return err