From d2a14842d8b8239d0f1c9e58b42da15469efa652 Mon Sep 17 00:00:00 2001 From: asl97 Date: Wed, 31 Dec 2014 18:04:34 +0100 Subject: [PATCH] avoid a busy server loop with high CPU usage fixes #7237 --- AUTHORS | 1 + OpenRA.Game/Server/Server.cs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 320522c197..3cf4e1a8e7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -26,6 +26,7 @@ Also thanks to: * Andrew Perkins * Andrew Riedi * Andreas Beck (baxtor) + * Ang Soon Li (asl97) * Arik Lirette (Angusm3) * Barnaby Smith (mvi) * Bellator diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index db0d8115c9..c6eab4e088 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -156,11 +156,11 @@ namespace OpenRA.Server for (;;) { var checkRead = new List(); - checkRead.Add(listener.Server); + if (State == ServerState.WaitingPlayers) checkRead.Add(listener.Server); foreach (var c in Conns) checkRead.Add(c.socket); foreach (var c in PreConns) checkRead.Add(c.socket); - Socket.Select(checkRead, null, null, timeout); + if (checkRead.Count > 0) Socket.Select(checkRead, null, null, timeout); if (State == ServerState.ShuttingDown) { EndGame();