github.com/lheiskan/zebrapack@v4.1.1-0.20181107023619-e955d028f9bf+incompatible/msgp/advise_linux.go (about) 1 // +build linux,!appengine 2 3 package msgp 4 5 import ( 6 "os" 7 "syscall" 8 ) 9 10 func adviseRead(mem []byte) { 11 syscall.Madvise(mem, syscall.MADV_SEQUENTIAL|syscall.MADV_WILLNEED) 12 } 13 14 func adviseWrite(mem []byte) { 15 syscall.Madvise(mem, syscall.MADV_SEQUENTIAL) 16 } 17 18 func fallocate(f *os.File, sz int64) error { 19 err := syscall.Fallocate(int(f.Fd()), 0, 0, sz) 20 if err == syscall.ENOTSUP { 21 return f.Truncate(sz) 22 } 23 return err 24 }