advise_linux.go 418 B

123456789101112131415161718192021222324
  1. // +build linux,!appengine
  2. package msgp
  3. import (
  4. "os"
  5. "syscall"
  6. )
  7. func adviseRead(mem []byte) {
  8. syscall.Madvise(mem, syscall.MADV_SEQUENTIAL|syscall.MADV_WILLNEED)
  9. }
  10. func adviseWrite(mem []byte) {
  11. syscall.Madvise(mem, syscall.MADV_SEQUENTIAL)
  12. }
  13. func fallocate(f *os.File, sz int64) error {
  14. err := syscall.Fallocate(int(f.Fd()), 0, 0, sz)
  15. if err == syscall.ENOTSUP {
  16. return f.Truncate(sz)
  17. }
  18. return err
  19. }