From 26dc1fa1200ed39c98ad74a0175e107aca73f6da Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Sat, 10 Mar 2012 17:47:25 -0800 Subject: [PATCH] Get rid of the PnUtils TLS stuff. --- .../Private/Nt/pnAceNtThread.cpp | 1 - .../NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp | 3 - .../Plasma/NucleusLib/pnUtils/CMakeLists.txt | 2 - .../NucleusLib/pnUtils/pnUtAllIncludes.h | 5 - Sources/Plasma/NucleusLib/pnUtils/pnUtHash.h | 1 - Sources/Plasma/NucleusLib/pnUtils/pnUtTls.cpp | 82 ------------- Sources/Plasma/NucleusLib/pnUtils/pnUtTls.h | 72 ------------ .../NucleusLib/pnUtilsExe/CMakeLists.txt | 1 - .../pnUtilsExe/Private/pnUteTls.cpp | 110 ------------------ 9 files changed, 277 deletions(-) delete mode 100644 Sources/Plasma/NucleusLib/pnUtils/pnUtTls.cpp delete mode 100644 Sources/Plasma/NucleusLib/pnUtils/pnUtTls.h delete mode 100644 Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp diff --git a/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtThread.cpp b/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtThread.cpp index 56fc0ae2..32e808f1 100644 --- a/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtThread.cpp +++ b/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtThread.cpp @@ -61,7 +61,6 @@ namespace Nt { //=========================================================================== void NtSleep (unsigned sleepMs) { - ThreadAssertCanBlock(__FILE__, __LINE__); Sleep(sleepMs); } diff --git a/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp b/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp index c3a168a4..64889003 100644 --- a/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp +++ b/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp @@ -307,9 +307,6 @@ void AsyncTimerDelete ( // Wait until the timer procedure completes if (timerProc) { - // ensure that I/O worker threads don't call this function with waitComplete=true - // to prevent a possible deadlock of a timer callback waiting for itself to complete - ThreadAssertCanBlock(__FILE__, __LINE__); while (s_timerCurr == timerProc) Sleep(1); diff --git a/Sources/Plasma/NucleusLib/pnUtils/CMakeLists.txt b/Sources/Plasma/NucleusLib/pnUtils/CMakeLists.txt index 8b988d1e..01000e98 100644 --- a/Sources/Plasma/NucleusLib/pnUtils/CMakeLists.txt +++ b/Sources/Plasma/NucleusLib/pnUtils/CMakeLists.txt @@ -22,7 +22,6 @@ set(pnUtils_HEADERS pnUtStr.h pnUtSync.h pnUtTime.h - pnUtTls.h pnUtUuid.h ) @@ -50,7 +49,6 @@ if(WIN32) Win32/pnUtW32Uuid.cpp pnUtCrypt.cpp - pnUtTls.cpp ) else() set(pnUtils_UNIX diff --git a/Sources/Plasma/NucleusLib/pnUtils/pnUtAllIncludes.h b/Sources/Plasma/NucleusLib/pnUtils/pnUtAllIncludes.h index 96305333..6c9a8bdb 100644 --- a/Sources/Plasma/NucleusLib/pnUtils/pnUtAllIncludes.h +++ b/Sources/Plasma/NucleusLib/pnUtils/pnUtAllIncludes.h @@ -53,7 +53,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "pnUtPragma.h" #include "pnUtAddr.h" #include "pnUtUuid.h" -#include "pnUtMath.h" #include "pnUtSort.h" #include "pnUtArray.h" #include "pnUtList.h" @@ -61,7 +60,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "pnUtPriQ.h" #include "pnUtSync.h" #include "pnUtTime.h" -#include "pnUtTls.h" #include "pnUtStr.h" #include "pnUtRef.h" #include "pnUtPath.h" @@ -69,8 +67,5 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "pnUtCmd.h" #include "pnUtMisc.h" #include "pnUtCrypt.h" -#include "pnUtSpareList.h" -#include "pnUtRand.h" -#include "pnUtBase64.h" #endif // PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNUTILS_PRIVATE_PNUTALLINCLUDES_H diff --git a/Sources/Plasma/NucleusLib/pnUtils/pnUtHash.h b/Sources/Plasma/NucleusLib/pnUtils/pnUtHash.h index 638a0bb1..c01b30cc 100644 --- a/Sources/Plasma/NucleusLib/pnUtils/pnUtHash.h +++ b/Sources/Plasma/NucleusLib/pnUtils/pnUtHash.h @@ -51,7 +51,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "Pch.h" #include "pnUtList.h" #include "pnUtArray.h" -#include "pnUtMath.h" #include "pnUtStr.h" /**************************************************************************** diff --git a/Sources/Plasma/NucleusLib/pnUtils/pnUtTls.cpp b/Sources/Plasma/NucleusLib/pnUtils/pnUtTls.cpp deleted file mode 100644 index 730af543..00000000 --- a/Sources/Plasma/NucleusLib/pnUtils/pnUtTls.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/*==LICENSE==* - -CyanWorlds.com Engine - MMOG client, server and tools -Copyright (C) 2011 Cyan Worlds, Inc. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -You can contact Cyan Worlds, Inc. by email legal@cyan.com - or by snail mail at: - Cyan Worlds, Inc. - 14617 N Newport Hwy - Mead, WA 99021 - -*==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTls.cpp -* -***/ - -#include "pnUtTls.h" - - -/***************************************************************************** -* -* Exports -* -***/ - -#ifdef HS_BUILD_FOR_WIN32 - -//============================================================================ -void ThreadLocalAlloc (unsigned * id) { - ASSERT(id); - *id = TlsAlloc(); -} - -//============================================================================ -void ThreadLocalFree (unsigned id) { - (void)TlsFree(id); -} - -//============================================================================ -void * ThreadLocalGetValue (unsigned id) { - return TlsGetValue(id); -} - -//============================================================================ -void ThreadLocalSetValue (unsigned id, void * value) { - TlsSetValue(id, value); -} - -#else -# error "TLS not implemented for this platform" -#endif diff --git a/Sources/Plasma/NucleusLib/pnUtils/pnUtTls.h b/Sources/Plasma/NucleusLib/pnUtils/pnUtTls.h deleted file mode 100644 index 815c22f6..00000000 --- a/Sources/Plasma/NucleusLib/pnUtils/pnUtTls.h +++ /dev/null @@ -1,72 +0,0 @@ -/*==LICENSE==* - -CyanWorlds.com Engine - MMOG client, server and tools -Copyright (C) 2011 Cyan Worlds, Inc. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -You can contact Cyan Worlds, Inc. by email legal@cyan.com - or by snail mail at: - Cyan Worlds, Inc. - 14617 N Newport Hwy - Mead, WA 99021 - -*==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTls.h -* -***/ - -#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNUTILS_PRIVATE_PNUTTLS_H -#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNUTILS_PRIVATE_PNUTTLS_H - -#include "Pch.h" - -/***************************************************************************** -* -* Thread local storage functions -* -***/ - -const unsigned kTlsInvalidValue = (unsigned) -1; - -void ThreadLocalAlloc (unsigned * id); -void ThreadLocalFree (unsigned id); -void * ThreadLocalGetValue (unsigned id); -void ThreadLocalSetValue (unsigned id, void * value); - - -// Thread capability functions - prevents deadlocks and performance -// bottlenecks by disallowing some threads certain operations. -void ThreadAllowBlock (); -void ThreadDenyBlock (); -void ThreadAssertCanBlock (const char file[], int line); -#endif diff --git a/Sources/Plasma/NucleusLib/pnUtilsExe/CMakeLists.txt b/Sources/Plasma/NucleusLib/pnUtilsExe/CMakeLists.txt index 496de2d4..dbe63c74 100644 --- a/Sources/Plasma/NucleusLib/pnUtilsExe/CMakeLists.txt +++ b/Sources/Plasma/NucleusLib/pnUtilsExe/CMakeLists.txt @@ -8,7 +8,6 @@ set(pnUtilsExe_HEADERS set(pnUtilsExe_PRIVATE Private/pnUteTime.cpp - Private/pnUteTls.cpp ) if(WIN32) diff --git a/Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp b/Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp deleted file mode 100644 index 4001806b..00000000 --- a/Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/*==LICENSE==* - -CyanWorlds.com Engine - MMOG client, server and tools -Copyright (C) 2011 Cyan Worlds, Inc. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -Additional permissions under GNU GPL version 3 section 7 - -If you modify this Program, or any covered work, by linking or -combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, -NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent -JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK -(or a modified version of those libraries), -containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, -PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG -JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the -licensors of this Program grant you additional -permission to convey the resulting work. Corresponding Source for a -non-source form of such a combination shall include the source code for -the parts of OpenSSL and IJG JPEG Library used as well as that of the covered -work. - -You can contact Cyan Worlds, Inc. by email legal@cyan.com - or by snail mail at: - Cyan Worlds, Inc. - 14617 N Newport Hwy - Mead, WA 99021 - -*==LICENSE==*/ -/***************************************************************************** -* -* $/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp -* -***/ - -#include "../Pch.h" -#pragma hdrstop - -#if HS_BUILD_FOR_WIN32 - -/***************************************************************************** -* -* Private data -* -***/ - -static unsigned s_tlsNoBlock = kTlsInvalidValue; - - -/***************************************************************************** -* -* Local functions -* -***/ - -//============================================================================ -static void ThreadCapsInitialize () { - ThreadLocalAlloc(&s_tlsNoBlock); -} - -//============================================================================ -static void ThreadCapsDestroy () { - if (s_tlsNoBlock != kTlsInvalidValue) { - ThreadLocalFree(s_tlsNoBlock); - s_tlsNoBlock = kTlsInvalidValue; - } -} - -//============================================================================ -AUTO_INIT_FUNC(InitThreadCaps) { - ThreadCapsInitialize(); - atexit(ThreadCapsDestroy); -} - - -/***************************************************************************** -* -* Exports -* -***/ - -//============================================================================ -void ThreadAllowBlock () { - ThreadLocalSetValue(s_tlsNoBlock, (void *) false); -} - -//============================================================================ -void ThreadDenyBlock () { - ThreadLocalSetValue(s_tlsNoBlock, (void *) true); -} - -//============================================================================ -void ThreadAssertCanBlock (const char file[], int line) { - if (ThreadLocalGetValue(s_tlsNoBlock)) - ErrorAssert(line, file, "This thread may not block"); -} - -#endif