diff options
| author | Robby Zambito <contact@robbyzambito.me> | 2026-01-06 20:48:10 -0500 |
|---|---|---|
| committer | Robby Zambito <contact@robbyzambito.me> | 2026-01-06 21:21:14 -0500 |
| commit | cc036318387cc5c44f2a0a2a1e28d067f3e6bdf6 (patch) | |
| tree | 98dffc4bdb58b2cf04f75a5210c972d955f066e6 /src | |
| parent | b87412ee66197d4c89f1fbf93b32fe63ed1c63ab (diff) | |
Better cancelation handling
Based on this conversation with Andrew
https://ziggit.dev/t/am-i-canceling-my-std-io-group-incorrectly/13836
Diffstat (limited to 'src')
| -rw-r--r-- | src/Server.zig | 13 |
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, } } |
