diff options
Diffstat (limited to 'src/Server.zig')
| -rw-r--r-- | src/Server.zig | 6 |
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, + }; } } |
