Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

fsync

Queues (but does not submit) an SQE to perform an fsync(2). Returns a pointer to the SQE so that you can further modify the SQE for advanced use cases. For example, for fdatasync() you can set IORING_FSYNC_DATASYNC in the SQE's rw_flags. N.B. While SQEs are initiated in the order in which they appear in the submission queue, operations execute in parallel and completions are unordered. Therefore, an application that submits a write followed by an fsync in the submission queue cannot expect the fsync to apply to the write, since the fsync may complete before the write is issued to the disk. You should preferably use link_with_next_sqe() on a write's SQE to link it with an fsync, or else insert a full write barrier using drain_previous_sqes() when queueing an fsync.

IoUring.fsync
pub fn fsync(self: *IoUring, user_data: u64, fd: linux.fd_t, flags: u32) !*linux.io_uring_sqe

File

lib/std/os/linux/IoUring.zig:351

Code

pub fn fsync(self: *IoUring, user_data: u64, fd: linux.fd_t, flags: u32) !*linux.io_uring_sqe {
    const sqe = try self.get_sqe();
    sqe.prep_fsync(fd, flags);
    sqe.user_data = user_data;
    return sqe;
}