Commit 217693e9 authored by Andrew Gerrand's avatar Andrew Gerrand

os: add Sync to *File, wraps syscall.Fsync

R=rsc, brainman, r, r2
CC=golang-dev
https://golang.org/cl/3887042
parent 02e88019
......@@ -408,6 +408,19 @@ func (f *File) Truncate(size int64) Error {
return nil
}
// Sync commits the current contents of the file to stable storage.
// Typically, this means flushing the file system's in-memory copy
// of recently written data to disk.
func (file *File) Sync() (err Error) {
if file == nil {
return EINVAL
}
if e := syscall.Fsync(file.fd); e != 0 {
return NewSyscallError("fsync", e)
}
return nil
}
// Chtimes changes the access and modification times of the named
// file, similar to the Unix utime() or utimes() functions.
//
......
......@@ -684,6 +684,9 @@ func Chown(path string, uid int, gid int) (errno int) { return EWINDOWS }
func Lchown(path string, uid int, gid int) (errno int) { return EWINDOWS }
func Fchown(fd int, uid int, gid int) (errno int) { return EWINDOWS }
// TODO(brainman): use FlushFileBuffers Windows api to implement Fsync.
func Fsync(fd int) (errno int) { return EWINDOWS }
func Getuid() (uid int) { return -1 }
func Geteuid() (euid int) { return -1 }
func Getgid() (gid int) { return -1 }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment