summaryrefslogtreecommitdiff
path: root/src/Server.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Server.zig')
-rw-r--r--src/Server.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Server.zig b/src/Server.zig
index e20f5c0..49f54e2 100644
--- a/src/Server.zig
+++ b/src/Server.zig
@@ -47,6 +47,7 @@ const Subscription = struct {
// would put an invalid set series of bytes in the receivers queue.
_ = try self.queue.putUncancelable(io, chunk, chunk.len);
}
+ try io.checkCancel();
}
};
@@ -382,7 +383,10 @@ fn publishMessage(
) catch unreachable;
msg_chunks.appendBounded(msg.payload) catch unreachable;
- try subscription.send(io, msg_chunks.items[0..chunk_count]);
+ subscription.send(io, msg_chunks.items[0..chunk_count]) catch |err| switch (err) {
+ error.Closed => {},
+ error.Canceled => |e| return e,
+ };
}
}