authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-28 07:11:52-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-29 06:20:52-07:00
log030b630829d3fe9c6c387a9bf68ae65ddb3b053c
treebe9e6955a3f9307d44c4a7bca46011a86b64ff47
parentc4dc7d7c3d4eade5f1092eb5c4af9bf45e3e2fda

std.Io.Threaded: fix EBADF error code on wasm32-wasi -lc when reading


1 files changed, 9 insertions(+), 2 deletions(-)

lib/std/Io/Threaded.zig+9-2
......@@ -2253,6 +2253,7 @@ const dirOpenDir = switch (native_os) {
22532253 else => dirOpenDirPosix,
22542254};
22552255
2256/// This function is also used for WASI when libc is linked.
22562257fn dirOpenDirPosix(
22572258 userdata: ?*anyopaque,
22582259 dir: Io.Dir,
......@@ -2551,7 +2552,10 @@ fn fileReadStreamingPosix(userdata: ?*anyopaque, file: Io.File, data: [][]u8) Io
25512552 .FAULT => |err| return errnoBug(err),
25522553 .SRCH => return error.ProcessNotFound,
25532554 .AGAIN => return error.WouldBlock,
2554 .BADF => |err| return errnoBug(err), // File descriptor used after closed.
2555 .BADF => |err| {
2556 if (native_os == .wasi) return error.NotOpenForReading; // File operation on directory.
2557 return errnoBug(err); // File descriptor used after closed.
2558 },
25552559 .IO => return error.InputOutput,
25562560 .ISDIR => return error.IsDir,
25572561 .NOBUFS => return error.SystemResources,
......@@ -2648,7 +2652,10 @@ fn fileReadPositionalPosix(userdata: ?*anyopaque, file: Io.File, data: [][]u8, o
26482652 .FAULT => |err| return errnoBug(err),
26492653 .SRCH => return error.ProcessNotFound,
26502654 .AGAIN => return error.WouldBlock,
2651 .BADF => |err| return errnoBug(err), // File descriptor used after closed.
2655 .BADF => |err| {
2656 if (native_os == .wasi) return error.NotOpenForReading; // File operation on directory.
2657 return errnoBug(err); // File descriptor used after closed.
2658 },
26522659 .IO => return error.InputOutput,
26532660 .ISDIR => return error.IsDir,
26542661 .NOBUFS => return error.SystemResources,