From 026cb24d6667a6a39e2fbc7a4c74207a38cf0742 Mon Sep 17 00:00:00 2001 From: MathiewMay Date: Wed, 11 Mar 2026 13:29:14 -0400 Subject: [PATCH] Revert "Fix entity ID TLS key recreating on every call of getSmallid() for linux, this caused a ID pool corruption." This reverts commit 047615dbbe40e0d82e202f8a9483471aa54c62cd. --- Minecraft.World/Entities/Entity.cpp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/Minecraft.World/Entities/Entity.cpp b/Minecraft.World/Entities/Entity.cpp index 0a62c9b3e..9c88a00e2 100644 --- a/Minecraft.World/Entities/Entity.cpp +++ b/Minecraft.World/Entities/Entity.cpp @@ -24,11 +24,7 @@ int Entity::entityCounter = 2048; // 4J - changed initialiser to 2048, as we are using range 0 - 2047 as special unique smaller ids for things that need network tracked -#ifdef _WIN32 DWORD Entity::tlsIdx = TlsAlloc(); -#else -pthread_key_t Entity::tlsIdx = 0; -#endif // 4J - added getSmallId & freeSmallId methods unsigned int Entity::entityIdUsedFlags[2048/32] = {0}; @@ -51,6 +47,7 @@ int Entity::getSmallId() #ifdef _WIN32 if( ((size_t)TlsGetValue(tlsIdx) != 0 ) ) #else + pthread_key_create(&tlsIdx, nullptr); if ( ((size_t)pthread_getspecific(tlsIdx) != 0) ) #endif { @@ -154,16 +151,7 @@ void Entity::freeSmallId(int index) void Entity::useSmallIds() { -#ifdef _WIN32 - TlsSetValue(tlsIdx, (LPVOID)1); -#else - static bool keyCreated = false; - if (!keyCreated) { - pthread_key_create(&tlsIdx, nullptr); - keyCreated = true; - } - pthread_setspecific(tlsIdx,(void*)1); -#endif + pthread_setspecific(tlsIdx,(LPVOID)1); } // Things also added here to be able to manage the concept of a number of extra "wandering" entities - normally path finding entities aren't allowed to