From cc036318387cc5c44f2a0a2a1e28d067f3e6bdf6 Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Tue, 6 Jan 2026 20:48:10 -0500 Subject: Better cancelation handling Based on this conversation with Andrew https://ziggit.dev/t/am-i-canceling-my-std-io-group-incorrectly/13836 --- src/Server.zig | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/Server.zig b/src/Server.zig index e7d00b1..85ddd9e 100644 --- a/src/Server.zig +++ b/src/Server.zig @@ -131,7 +131,8 @@ fn handleConnectionInfallible( ) !void { handleConnection(server, server_allocator, io, id, stream, r_buf_size, w_buf_size) catch |err| switch (err) { error.Canceled => return error.Canceled, - else => log.err("Failed processing client {d}: {any}", .{ id, err }), + error.ClientDisconnected => log.debug("Client {d} disconnected", .{id}), + else => log.err("Failed processing client {d}: {t}", .{ id, err }), }; } @@ -235,13 +236,9 @@ fn handleConnection( }, } } else |err| switch (err) { - error.EndOfStream, error.ReadFailed => { - log.debug("Client {d} disconnected", .{id}); - return error.Canceled; - }, - else => { - return err; - }, + error.EndOfStream => return error.ClientDisconnected, + error.ReadFailed => return reader.err.?, + else => |e| return e, } } -- cgit