diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-04-16 23:14:42 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-04-16 23:14:42 +0200 |
| commit | 29a4153f0038526ee6df690ec3499d66630e5071 (patch) | |
| tree | 5af0e2aa858de3b48226689ca83142050df0bcee /src | |
| parent | 4747515872775553de35cc3267e1ccd5e0076ca4 (diff) | |
Core/World: Allow specifying minimum world updates diff in config
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/worldserver/Main.cpp | 7 | ||||
| -rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 888b0ad65d4..f370881001e 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -67,8 +67,6 @@ namespace fs = boost::filesystem; #define _TRINITY_CORE_CONFIG "worldserver.conf" #endif -#define WORLD_SLEEP_CONST 1 - #ifdef _WIN32 #include "ServiceWin32.h" char serviceName[] = "worldserver"; @@ -472,6 +470,7 @@ void ShutdownCLIThread(std::thread* cliThread) void WorldUpdateLoop() { + uint32 minUpdateDiff = uint32(sConfigMgr->GetIntDefault("MinWorldUpdateTime", 1)); uint32 realCurrTime = 0; uint32 realPrevTime = getMSTime(); @@ -486,10 +485,10 @@ void WorldUpdateLoop() realCurrTime = getMSTime(); uint32 diff = getMSTimeDiff(realPrevTime, realCurrTime); - if (!diff) + if (diff < minUpdateDiff) { // sleep until enough time passes that we can update all timers - std::this_thread::sleep_for(std::chrono::milliseconds(1)); + std::this_thread::sleep_for(Milliseconds(minUpdateDiff - diff)); continue; } diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 32648572ca7..4842ac12b5a 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -335,6 +335,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. # Default: 10 - (0.01 second) |
