From 6a00ece6d45addd694c00cbf94e48310dbb5f5bb Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 15 Jun 2022 18:15:15 -0400 Subject: [PATCH] Core/World: Allow specifying minimum world updates diff in config Port From (https://github.com/TrinityCore/TrinityCore/commit/833ddfad11fdb6af37bb70296dbc11613f4d0f5f) --- Source/WorldServer/Server.cs | 5 +++-- Source/WorldServer/WorldServer.conf.dist | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/WorldServer/Server.cs b/Source/WorldServer/Server.cs index 700c08e22..0c384a9c4 100644 --- a/Source/WorldServer/Server.cs +++ b/Source/WorldServer/Server.cs @@ -180,6 +180,7 @@ namespace WorldServer static void WorldUpdateLoop() { + int minUpdateDiff = ConfigMgr.GetDefaultValue("MinWorldUpdateTime", 1); uint realPrevTime = Time.GetMSTime(); while (!Global.WorldMgr.IsStopped) @@ -187,10 +188,10 @@ namespace WorldServer var realCurrTime = Time.GetMSTime(); uint diff = Time.GetMSTimeDiff(realPrevTime, realCurrTime); - if (diff == 0) + if (diff < minUpdateDiff) { // sleep until enough time passes that we can update all timers - Thread.Sleep(1); + Thread.Sleep(TimeSpan.FromMilliseconds(minUpdateDiff - diff)); continue; } diff --git a/Source/WorldServer/WorldServer.conf.dist b/Source/WorldServer/WorldServer.conf.dist index e02e21204..124f01d66 100644 --- a/Source/WorldServer/WorldServer.conf.dist +++ b/Source/WorldServer/WorldServer.conf.dist @@ -331,6 +331,13 @@ SessionAddDelay = 10000 GridCleanUpDelay = 300000 +# +# MinWorldUpdateTime +# Description: Minimum time (milliseconds) between world update ticks (for mostly idle servers). +# Default: 1 - (0.001 second) + +MinWorldUpdateTime = 1 + # # MapUpdateInterval # Description: Time (milliseconds) for map update interval.