From 3110060351f98ea8de65809379e1bcd9607fb1cb Mon Sep 17 00:00:00 2001 From: LeRoyce Pearson Date: Sun, 8 Mar 2020 16:28:49 -0600 Subject: [PATCH] Add `lock` to fs.File.OpenFlags --- lib/std/fs/file.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/std/fs/file.zig b/lib/std/fs/file.zig index c4991a81ff..e892fc3b8f 100644 --- a/lib/std/fs/file.zig +++ b/lib/std/fs/file.zig @@ -41,6 +41,15 @@ pub const File = struct { read: bool = true, write: bool = false, + /// Open the file with exclusive access. If `write` is true, then the file is opened with an + /// exclusive lock, meaning that no other processes can read or write to the file. Otherwise + /// the file is opened with a shared lock, allowing the other processes to read from the + /// file, but not to write to the file. + /// + /// Note that the lock is only advisory on Linux. This means that a process that does not + /// respect the locking API can still read and write to the file, despite the lock. + lock: bool = false, + /// This prevents `O_NONBLOCK` from being passed even if `std.io.is_async`. /// It allows the use of `noasync` when calling functions related to opening /// the file, reading, and writing.