aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gerrand <adg@golang.org>2011-01-12 11:08:39 +1100
committerAndrew Gerrand <adg@golang.org>2011-01-12 11:08:39 +1100
commit217693e93c23fed2f3224dfaf1eb730d8e5256bb (patch)
treebfaebe8a6c95eb419ea9aea60d64a4586065de7f
parent02e88019f23e56a17824b65e462be0746acdd116 (diff)
downloadgo-217693e93c23fed2f3224dfaf1eb730d8e5256bb.tar.gz
go-217693e93c23fed2f3224dfaf1eb730d8e5256bb.zip
os: add Sync to *File, wraps syscall.Fsync
R=rsc, brainman, r, r2 CC=golang-dev https://golang.org/cl/3887042
-rw-r--r--src/pkg/os/file.go13
-rw-r--r--src/pkg/syscall/syscall_windows.go3
2 files changed, 16 insertions, 0 deletions
diff --git a/src/pkg/os/file.go b/src/pkg/os/file.go
index 909e28e68f..3f73f1dffe 100644
--- a/src/pkg/os/file.go
+++ b/src/pkg/os/file.go
@@ -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.
//
diff --git a/src/pkg/syscall/syscall_windows.go b/src/pkg/syscall/syscall_windows.go
index b425337bf5..9501779e18 100644
--- a/src/pkg/syscall/syscall_windows.go
+++ b/src/pkg/syscall/syscall_windows.go
@@ -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 }