zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 775b48dd10c1af3f8d21f5bae3e0d2495dfcec67 (tree)
parent aa5341bf85e2aab566ae235c24f85ddaf09e8aee
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Mon, 25 Nov 2024 12:58:25 -0800

std.io.Poller: handle EPIPE as EOF

closes #17483

Diffstat:
Mlib/std/io.zig | 5++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/std/io.zig b/lib/std/io.zig @@ -646,7 +646,10 @@ pub fn Poller(comptime StreamEnum: type) type { // always check if there's some data waiting to be read first. if (poll_fd.revents & posix.POLL.IN != 0) { const buf = try q.writableWithSize(bump_amt); - const amt = try posix.read(poll_fd.fd, buf); + const amt = posix.read(poll_fd.fd, buf) catch |err| switch (err) { + error.BrokenPipe => 0, // Handle the same as EOF. + else => |e| return e, + }; q.update(amt); if (amt == 0) { // Remove the fd when the EOF condition is met.