From d78f5c7aaf3eee183801650d4a2baac768a68004 Mon Sep 17 00:00:00 2001 From: serge_shubin Date: Mon, 23 Mar 2026 06:28:17 +0800 Subject: [PATCH] Fix pause deadlock: check CS_CONNECTED not CS_ACTIVE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CS_ACTIVE requires a fully connected client, but clients go through CS_CONNECTED → CS_PRIMED → CS_ACTIVE. If the server is paused waiting for CS_ACTIVE, the connection handshake never completes. Check >= CS_CONNECTED to allow connecting clients to unpause. Co-Authored-By: Claude Opus 4.6 (1M context) --- code/server/sv_netdemo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/server/sv_netdemo.c b/code/server/sv_netdemo.c index 0de5db5..8b4fa9c 100644 --- a/code/server/sv_netdemo.c +++ b/code/server/sv_netdemo.c @@ -1029,8 +1029,8 @@ qboolean SVD_ShouldPause( void ) { } for ( i = 0; i < sv_maxclients->integer; i++ ) { - if ( svs.clients[i].state == CS_ACTIVE ) { - return qfalse; // someone is watching + if ( svs.clients[i].state >= CS_CONNECTED ) { + return qfalse; // someone is connected or connecting } }