github.com/icodeface/tls@v0.0.0-20230910023335-34df9250cd12/internal/poll/fd_fsync_posix.go (about) 1 // Copyright 2018 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build aix dragonfly freebsd js,wasm linux nacl netbsd openbsd solaris 6 7 package poll 8 9 import "syscall" 10 11 // Fsync wraps syscall.Fsync. 12 func (fd *FD) Fsync() error { 13 if err := fd.incref(); err != nil { 14 return err 15 } 16 defer fd.decref() 17 return syscall.Fsync(fd.Sysfd) 18 } 19 20 func fcntl(fd int, cmd int, arg int) (int, error) { 21 r, _, e := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) 22 if e != 0 { 23 return int(r), syscall.Errno(e) 24 } 25 return int(r), nil 26 }