diff options
| author | Patrick Schönberger | 2026-05-18 12:34:30 +0200 |
|---|---|---|
| committer | Patrick Schönberger | 2026-05-18 12:47:28 +0200 |
| commit | fb958dd095c87b0f16aadbb21d71f3870b5d7a9c (patch) | |
| tree | 854454f2065516f2047f5b924b784b2cbd76fec5 /src/main.zig | |
| parent | a695aa32e7f9fb1eb73e09983c74c25946f27457 (diff) | |
| download | zhttpws-main.tar.gz zhttpws-main.zip | |
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 13 |
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", .{}); } |
