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//go:build aix || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris
6
7package poll
8
9import "syscall"
10
11// Fsync wraps syscall.Fsync.
12func (fd *FD) Fsync() error {
13	if err := fd.incref(); err != nil {
14		return err
15	}
16	defer fd.decref()
17	return ignoringEINTR(func() error {
18		return syscall.Fsync(fd.Sysfd)
19	})
20}
21