Merge pull request #312 from 4jcraft/refactor/replace-sleep

refactor: replace win32 thread sleeping and yielding with `std::thread` primitives
This commit is contained in:
Tropical
2026-03-27 18:47:47 -05:00
committed by GitHub
24 changed files with 156 additions and 89 deletions

View File

@@ -2,6 +2,8 @@
// #include "Minecraft.h"
#include <ctime>
#include <thread>
#include <chrono>
#include "Input/ConsoleInput.h"
#include "Level/DerivedServerLevel.h"
@@ -229,7 +231,7 @@ bool MinecraftServer::initServer(__int64 seed, NetworkGameInitData* initData,
// 4J-JEV: Need to wait for levelGenerationOptions to load.
while (app.getLevelGenerationOptions() != NULL &&
!app.getLevelGenerationOptions()->hasLoadedData())
Sleep(1);
std::this_thread::sleep_for(std::chrono::milliseconds(1));
if (app.getLevelGenerationOptions() != NULL &&
!app.getLevelGenerationOptions()->ready()) {
@@ -335,7 +337,7 @@ int MinecraftServer::runPostUpdate(void* lpParam) {
} else {
LeaveCriticalSection(&server->m_postProcessCS);
}
Sleep(1);
std::this_thread::sleep_for(std::chrono::milliseconds(1));
} while (!server->m_postUpdateTerminate &&
ShutdownManager::ShouldRun(ShutdownManager::ePostProcessThread));
// #ifndef __PS3__
@@ -356,7 +358,7 @@ int MinecraftServer::runPostUpdate(void* lpParam) {
printf("processing request %00d\n",
server->m_postProcessRequests.size());
#endif
Sleep(1);
std::this_thread::sleep_for(std::chrono::milliseconds(1));
#endif
EnterCriticalSection(&server->m_postProcessCS);
}
@@ -1078,7 +1080,7 @@ void MinecraftServer::stopServer(bool didInit) {
// files have completed saving.
#if defined(_DURANGO) || defined(__ORBIS__) || defined(__PSVITA__)
while (StorageManager.GetSaveState() != C4JStorage::ESaveGame_Idle) {
Sleep(10);
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
#endif
@@ -1580,7 +1582,7 @@ void MinecraftServer::run(int64_t seed, void* lpParameter) {
app.SetXuiServerAction(i, eXuiServerAction_Idle);
}
Sleep(1);
std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
}
// else
@@ -1588,7 +1590,7 @@ void MinecraftServer::run(int64_t seed, void* lpParameter) {
// while (running)
// {
// handleConsoleInputs();
// Sleep(10);
// std::this_thread::sleep_for(std::chrono::milliseconds(10));
// }
// }
#if 0