From: Brendan Hansen Date: Wed, 15 Nov 2023 04:07:52 +0000 (-0600) Subject: bugfix: possible infinite loops in tcp server X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=a36ffe678f891d6c24e1e6bcfbcd0b641d9d4c1a;p=onyx.git bugfix: possible infinite loops in tcp server --- diff --git a/core/net/tcp.onyx b/core/net/tcp.onyx index 967c8487..9b451e99 100644 --- a/core/net/tcp.onyx +++ b/core/net/tcp.onyx @@ -239,6 +239,18 @@ tcp_server_pulse :: (use server: &TCP_Server) -> bool { status_buffer: [1] Socket_Poll_Status; socket_poll_all(.[&socket], status_buffer, -1); return server.alive; + + } else do for clients { + // If we have some clients, make sure their sockets are still alive. + // There were issues detecting this in the poll() function so we do + // do it explictly here. + + if it == null do continue; + if it.state != .Alive do continue; + + if !it.socket->is_alive() { + tcp_server_kill_client(server, it); + } } clients_with_messages := wait_to_get_client_messages(server);