From 586413357e96c19595636ae64e5ff01e14982cb3 Mon Sep 17 00:00:00 2001 From: Nikolay Govorov Date: Tue, 17 Mar 2026 10:59:35 +0000 Subject: [PATCH] Close all cdp clients on shutdown --- src/Server.zig | 16 ++++++++-------- src/main.zig | 2 ++ src/network/Runtime.zig | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Server.zig b/src/Server.zig index e43313da..d172f6dd 100644 --- a/src/Server.zig +++ b/src/Server.zig @@ -64,17 +64,17 @@ pub fn init(app: *App, address: net.Address) !*Server { return self; } -pub fn deinit(self: *Server) void { - // Stop all active clients - { - self.client_mutex.lock(); - defer self.client_mutex.unlock(); +pub fn shutdown(self: *Server) void { + self.client_mutex.lock(); + defer self.client_mutex.unlock(); - for (self.clients.items) |client| { - client.stop(); - } + for (self.clients.items) |client| { + client.stop(); } +} +pub fn deinit(self: *Server) void { + self.shutdown(); self.joinThreads(); self.clients.deinit(self.allocator); self.clients_pool.deinit(); diff --git a/src/main.zig b/src/main.zig index d9c1e8ee..640f8231 100644 --- a/src/main.zig +++ b/src/main.zig @@ -115,6 +115,8 @@ fn run(allocator: Allocator, main_arena: Allocator) !void { }; defer server.deinit(); + try sighandler.on(lp.Server.shutdown, .{server}); + app.network.run(); }, .fetch => |opts| { diff --git a/src/network/Runtime.zig b/src/network/Runtime.zig index a47a1948..72aebe81 100644 --- a/src/network/Runtime.zig +++ b/src/network/Runtime.zig @@ -491,7 +491,7 @@ fn acceptConnections(self: *Runtime) void { error.ConnectionAborted => { lp.log.warn(.app, "accept connection aborted", .{}); continue; - }, + }, else => { lp.log.err(.app, "accept error", .{ .err = err }); continue;