treesummaryrefslogcommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorPatrick Schönberger2026-05-18 12:34:30 +0200
committerPatrick Schönberger2026-05-18 12:47:28 +0200
commitfb958dd095c87b0f16aadbb21d71f3870b5d7a9c (patch)
tree854454f2065516f2047f5b924b784b2cbd76fec5 /src/main.zig
parenta695aa32e7f9fb1eb73e09983c74c25946f27457 (diff)
downloadzhttpws-fb958dd095c87b0f16aadbb21d71f3870b5d7a9c.tar.gz
zhttpws-fb958dd095c87b0f16aadbb21d71f3870b5d7a9c.zip
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/main.zig b/src/main.zig
index 1e7f9e8..cf64c8e 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -21,7 +21,12 @@ fn handle_websocket(alloc: std.mem.Allocator, websocket: *WebSocket) void {
m.unlock();
defer {
- for (0..clients.items.len) |i| { if (std.mem.eql(u8, websocket.key, clients.items[i].key)) { _ = clients.swapRemove(i); break; } }
+ for (0..clients.items.len) |i| {
+ if (std.mem.eql(u8, websocket.key, clients.items[i].key)) {
+ _ = clients.swapRemove(i);
+ break;
+ }
+ }
std.debug.print("{} clients\n", .{clients.items.len});
}
@@ -129,10 +134,14 @@ pub fn main(init: std.process.Init) !void {
const address = try std.Io.net.IpAddress.parseIp4("0.0.0.0", port);
var net_server = try address.listen(io, .{ .reuse_address = true });
+ var group: Io.Group = .init;
+ defer group.cancel(io);
+
while (true) {
const stream = try net_server.accept(io);
+ errdefer stream.close(io);
- _ = io.async(handle_request, .{ arena, io, stream });
+ group.async(io, handle_request, .{ arena, io, stream });
// std.debug.print("created http thread\n", .{});
}