Better cancelation handling

Based on this conversation with Andrew
https://ziggit.dev/t/am-i-canceling-my-std-io-group-incorrectly/13836
This commit is contained in:
2026-01-06 20:48:10 -05:00
parent b87412ee66
commit cc03631838

View File

@@ -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,
}
}