summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2026-01-06 20:48:10 -0500
committerRobby Zambito <contact@robbyzambito.me>2026-01-06 21:21:14 -0500
commitcc036318387cc5c44f2a0a2a1e28d067f3e6bdf6 (patch)
tree98dffc4bdb58b2cf04f75a5210c972d955f066e6
parentb87412ee66197d4c89f1fbf93b32fe63ed1c63ab (diff)
Better cancelation handling
Based on this conversation with Andrew https://ziggit.dev/t/am-i-canceling-my-std-io-group-incorrectly/13836
-rw-r--r--src/Server.zig13
1 files 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,
}
}