motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit d680b9e9b2320612a4e988763f5090c4ae8f9a8f (tree)
parent 539808239ecae050e383dd11f395a363b4404e21
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Mon, 13 Oct 2025 19:04:02 -0700

std.Io.File: add WouldBlock to the error set

Even in an asynchronous world, the concept of a non-blocking flag is
useful because it determines under what conditions the operation
completes.

Diffstat:
Mlib/std/Io/File.zig | 2++
Mlib/std/Io/Threaded.zig | 8++++----
2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/std/Io/File.zig b/lib/std/Io/File.zig @@ -139,6 +139,8 @@ pub const OpenError = error{ /// kernel (e.g., for module/firmware loading), and write access was /// requested. FileBusy, + /// Non-blocking was requested and the operation cannot return immediately. + WouldBlock, } || Io.Dir.PathNameError || Io.Cancelable || Io.UnexpectedError; pub fn close(file: File, io: Io) void { diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig @@ -1039,7 +1039,7 @@ fn dirCreateFilePosix( .EXIST => return error.PathAlreadyExists, .BUSY => return error.DeviceBusy, .OPNOTSUPP => return error.FileLocksNotSupported, - //.AGAIN => return error.WouldBlock, + .AGAIN => return error.WouldBlock, .TXTBSY => return error.FileBusy, .NXIO => return error.NoDevice, .ILSEQ => return error.BadPathName, @@ -1064,7 +1064,7 @@ fn dirCreateFilePosix( .BADF => |err| return errnoBug(err), .INVAL => |err| return errnoBug(err), // invalid parameters .NOLCK => return error.SystemResources, - //.AGAIN => return error.WouldBlock, + .AGAIN => return error.WouldBlock, .OPNOTSUPP => return error.FileLocksNotSupported, else => |err| return posix.unexpectedErrno(err), } @@ -1168,7 +1168,7 @@ fn dirOpenFile( .EXIST => return error.PathAlreadyExists, .BUSY => return error.DeviceBusy, .OPNOTSUPP => return error.FileLocksNotSupported, - //.AGAIN => return error.WouldBlock, + .AGAIN => return error.WouldBlock, .TXTBSY => return error.FileBusy, .NXIO => return error.NoDevice, .ILSEQ => return error.BadPathName, @@ -1193,7 +1193,7 @@ fn dirOpenFile( .BADF => |err| return errnoBug(err), .INVAL => |err| return errnoBug(err), // invalid parameters .NOLCK => return error.SystemResources, - //.AGAIN => return error.WouldBlock, + .AGAIN => return error.WouldBlock, .OPNOTSUPP => return error.FileLocksNotSupported, else => |err| return posix.unexpectedErrno(err), }